From d105363b683d822f3b23f1159d2cfb5192428e1c Mon Sep 17 00:00:00 2001 From: Samuel GOUGEON Date: Fri, 11 Dec 2020 15:43:54 +0100 Subject: [PATCH] * Bug 14567 fixed [Scinotes]: Restore the TODO feature http://bugzilla.scilab.org/14567 http://bugzilla.scilab.org/14567#c8 Built after removal: https://codereview.scilab.org/#/c/18147 1st trial: https://codereview.scilab.org/18422 Not tested Change-Id: I51188dcbed1106f6e62d3f43db54afcefd97c248 --- scilab/CHANGES.md | 1 + .../modules/scinotes/src/java/jflex/scilab.jflex | 115 +-- .../org/scilab/modules/scinotes/ScilabLexer.java | 899 ++++++++++---------- 3 files changed, 519 insertions(+), 496 deletions(-) diff --git a/scilab/CHANGES.md b/scilab/CHANGES.md index 87dfbf4..babde46 100644 --- a/scilab/CHANGES.md +++ b/scilab/CHANGES.md @@ -361,6 +361,7 @@ Bug Fixes * [#14435](https://bugzilla.scilab.org/14435): Errors were not well handled in overloaded functions. * [#14477](https://bugzilla.scilab.org/14477): `mtlb_sparse()` removed from the documentation. * [#14488](https://bugzilla.scilab.org/14488): The `frameflag=9` and `strf=".9."` values of these `plot2d` options were no longer accepted. Their documentation was ambiguous. +* [#14567](https://bugzilla.scilab.org/14567): In Scinotes, the `TODO` keyword was no longer highlighted. * [#14718](https://bugzilla.scilab.org/14718): `user` is removed for a while but was still documented. * [#14873](https://bugzilla.scilab.org/14873): `setfield` page: The output and the 6.0 history were documented only on the en_US version. The input was wrongly restricted to matrices, while any Scilab object is acceptable. The specific role of `setfield` for mlists was not really described nor illustrated. The example did not include any call to setfield. * [#15012](https://bugzilla.scilab.org/15012): `covStart(["isempty" ; "isscalar"])` crashed Scilab. diff --git a/scilab/modules/scinotes/src/java/jflex/scilab.jflex b/scilab/modules/scinotes/src/java/jflex/scilab.jflex index ab9e1d1..69698e5 100644 --- a/scilab/modules/scinotes/src/java/jflex/scilab.jflex +++ b/scilab/modules/scinotes/src/java/jflex/scilab.jflex @@ -42,27 +42,27 @@ import org.scilab.modules.commons.ScilabCommonsUtils; private MatchingBlockScanner matchBlock; static { - // For SciNotes colors in preferences - commands.add("cos"); - macros.add("sind"); + // For SciNotes colors in preferences + commands.add("cos"); + macros.add("sind"); } public ScilabLexer(ScilabDocument doc) { - this(doc, new MatchingBlockScanner(doc), true); + this(doc, new MatchingBlockScanner(doc), true); } public ScilabLexer(ScilabDocument doc, boolean update) { - this(doc, new MatchingBlockScanner(doc), update); + this(doc, new MatchingBlockScanner(doc), update); } public ScilabLexer(ScilabDocument doc, MatchingBlockScanner matchBlock, boolean update) { this.doc = doc; this.elem = doc.getDefaultRootElement(); this.infile = doc.getFunctionsInDoc(); - this.matchBlock = matchBlock; - if (update) { - update(); - } + this.matchBlock = matchBlock; + if (update) { + update(); + } } public static void update() { @@ -82,7 +82,7 @@ import org.scilab.modules.commons.ScilabCommonsUtils; if (macs != null) { macros.addAll(Arrays.asList(macs)); } - } + } } public void setRange(int p0, int p1) { @@ -93,12 +93,12 @@ import org.scilab.modules.commons.ScilabCommonsUtils; yyreset(new ScilabDocumentReader(doc, p0, p1)); int currentLine = elem.getElementIndex(start); if (currentLine != 0) { - ScilabDocument.ScilabLeafElement e = (ScilabDocument.ScilabLeafElement) elem.getElement(currentLine - 1); - if (e.isBrokenString()) { + ScilabDocument.ScilabLeafElement e = (ScilabDocument.ScilabLeafElement) elem.getElement(currentLine - 1); + if (e.isBrokenString()) { yybegin(QSTRING); - } else if (e.isBlockComment()) { - yybegin(BLOCKCOMMENT); - } + } else if (e.isBlockComment()) { + yybegin(BLOCKCOMMENT); + } } } @@ -113,23 +113,23 @@ import org.scilab.modules.commons.ScilabCommonsUtils; ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBrokenString(breakstring); breakstring = false; } else if (lastPos == end) { - ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBlockComment(yystate() == BLOCKCOMMENT); + ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBlockComment(yystate() == BLOCKCOMMENT); } - return ret; + return ret; } public boolean isLineFinishedByBlockComment(int start, int end) { this.start = start; - this.end = end; - try { + this.end = end; + try { yyreset(new ScilabDocumentReader(doc, start, end)); - int tok = 0; - while (tok != ScilabLexerConstants.EOF) { - tok = yylex(); - } + int tok = 0; + while (tok != ScilabLexerConstants.EOF) { + tok = yylex(); + } } catch (Exception e) { } - - return yystate() == BLOCKCOMMENT; + + return yystate() == BLOCKCOMMENT; } public int getKeyword(int pos, boolean strict) { @@ -164,46 +164,46 @@ import org.scilab.modules.commons.ScilabCommonsUtils; } public static ScilabTokens getScilabTokens(String str) { - ScilabDocument doc = new ScilabDocument(false); - try { - doc.insertString(0, str, null); + ScilabDocument doc = new ScilabDocument(false); + try { + doc.insertString(0, str, null); } catch (BadLocationException e) { } - return getScilabTokens(doc); + return getScilabTokens(doc); } public static ScilabTokens getScilabTokens(ScilabDocument doc) { - ScilabLexer lexer = new ScilabLexer(doc); - lexer.yyreset(new ScilabDocumentReader(doc, 0, doc.getLength())); - ScilabTokens tokens = new ScilabTokens(); - int tok = -1; - try { - while (tok != ScilabLexerConstants.EOF) { + ScilabLexer lexer = new ScilabLexer(doc); + lexer.yyreset(new ScilabDocumentReader(doc, 0, doc.getLength())); + ScilabTokens tokens = new ScilabTokens(); + int tok = -1; + try { + while (tok != ScilabLexerConstants.EOF) { tok = lexer.yylex(); tokens.add(tok, lexer.yychar() + lexer.yylength()); } } catch (IOException e) { } - return tokens; + return tokens; } public static class ScilabTokens { private List tokenType = new ArrayList(); private List tokenPos = new ArrayList(); - ScilabTokens() { } + ScilabTokens() { } - void add(final int type, final int pos) { - tokenType.add(type); - tokenPos.add(pos); - } + void add(final int type, final int pos) { + tokenType.add(type); + tokenPos.add(pos); + } - public final List getTokenType() { - return tokenType; - } + public final List getTokenType() { + return tokenType; + } - public final List getTokenPos() { - return tokenPos; - } + public final List getTokenPos() { + return tokenPos; + } } %} @@ -239,6 +239,9 @@ controlKwds = "abort" | "break" | "quit" | "return" | "resume" | "pause" | "cont authors = "Michael Baudin" | "Michael BAUDIN" | "Paul Bignier" | "Paul BIGNIER" | "Adeline CARNIS" | "Adeline CARNIS" | "Yann Collette" | "Yann COLLETTE" | "Allan Cornet" | "Allan CORNET" | "Vincent Couvert" | "Vincent COUVERT" | "Clement David" | "Clement DAVID" | "Calixte Denizet" | "Calixte DENIZET" | "Cedric Delamarre" | "Cedric DELAMARRE" | "Antoine Elias" | "Antoine ELIAS" | "Simon Gareste" | "Simon GARESTE" | "Claude Gomez" | "Claude GOMEZ" | "Samuel Gougeon" | "Samuel GOUGEON" | "Bernard Hugueney" | "Bernard HUGUENEY" | "Bruno Jofret" | "Bruno JOFRET" | "Manuel Juliachs" | "Manuel JULIACHS" | "Sylvestre Koumar" | "Sylvestre KOUMAR" | "Pierre Lando" | "Pierre LANDO" | "Sylvestre Ledru" | "Sylvestre LEDRU" | "Vincent Lejeune" | "Vincent LEJEUNE" | "Vincent Liard" | "Vincent LIARD" | "Zhour Madini-Zouine" | "Zhour MADINI-ZOUINE" | "Pierre Marechal" | "Pierre MARECHAL" | "Stephane Mottelet" | "Stephane MOTTELET" | "Jerome Picard" | "Jerome PICARD" | "Allan Simon" | "Allan SIMON" | "Serge Steer" | "Serge STEER" | "Inria" | "INRIA" | "DIGITEO" | "Digiteo" | "ENPC" | "ESI Group" + +todo = ("TODO" | "todo" | "Todo")[ \t:]+[^\n]* + break = ".."(".")* breakinstring = {break}[ \t]*{comment}? @@ -296,7 +299,7 @@ number = ({digit}+"."?{digit}*{exp}?)|("."{digit}+{exp}?) return ScilabLexerConstants.OSKEYWORD; } - {end} { + {end} { transposable = false; if (matchBlock != null) { MatchingBlockScanner.MatchingPositions pos = matchBlock.getMatchingBlock(start + yychar() + yylength(), false); @@ -526,6 +529,10 @@ number = ({digit}+"."?{digit}*{exp}?)|("."{digit}+{exp}?) return ScilabLexerConstants.AUTHORS; } + {todo} { + return ScilabLexerConstants.TODO; + } + {url} { return ScilabLexerConstants.URL; } @@ -546,10 +553,10 @@ number = ({digit}+"."?{digit}*{exp}?)|("."{digit}+{exp}?) return ScilabLexerConstants.TAB_COMMENT; } - {endcomment} { - yybegin(YYINITIAL); - return ScilabLexerConstants.COMMENT; - } + {endcomment} { + yybegin(YYINITIAL); + return ScilabLexerConstants.COMMENT; + } . | {eol} { @@ -562,6 +569,10 @@ number = ({digit}+"."?{digit}*{exp}?)|("."{digit}+{exp}?) return ScilabLexerConstants.AUTHORS; } + {todo} { + return ScilabLexerConstants.TODO; + } + {url} { return ScilabLexerConstants.URL; } diff --git a/scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabLexer.java b/scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabLexer.java index 9e99482..2fb30a5 100644 --- a/scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabLexer.java +++ b/scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/ScilabLexer.java @@ -126,20 +126,20 @@ public final class ScilabLexer extends ScilabLexerConstants { "\1\5\1\6\1\7\1\5\1\10\1\11\1\12\1\13"+ "\2\10\1\2\1\10\1\14\1\10\1\15\1\7\2\10"+ "\3\5\1\10\16\5\1\10\1\1\1\16\1\17\1\20"+ - "\1\21\1\1\1\22\1\23\1\24\23\22\1\25\1\26"+ + "\1\21\1\1\1\22\1\23\1\24\25\22\1\25\1\26"+ "\1\27\1\25\1\30\1\31\1\32\1\1\1\3\1\4"+ "\1\1\2\17\1\0\1\33\3\0\3\34\2\5\2\10"+ "\1\33\1\0\1\10\1\7\1\10\1\15\1\35\1\36"+ "\1\33\1\15\7\5\1\37\5\5\1\40\10\5\1\10"+ - "\1\0\1\41\1\0\1\42\44\0\1\43\1\0\1\1"+ + "\1\0\1\41\1\0\1\42\46\0\1\43\1\0\1\1"+ "\1\44\3\0\3\5\1\33\3\15\1\34\10\5\1\45"+ - "\12\5\1\33\1\41\1\0\1\42\42\0\5\5\1\46"+ - "\1\5\1\47\10\5\1\41\14\0\1\50\23\0\1\42"+ - "\11\5\33\0\2\5\1\46\2\5\33\0\2\5\33\0"+ - "\1\51\1\52\1\0\1\53\343\0"; + "\12\5\1\33\1\41\1\0\1\42\44\0\5\5\1\46"+ + "\1\5\1\47\10\5\1\41\14\0\1\50\24\0\1\42"+ + "\11\5\27\0\1\51\4\0\2\5\1\46\2\5\33\0"+ + "\2\5\33\0\1\52\1\53\1\0\1\54\343\0"; private static int [] zzUnpackAction() { - int [] result = new int[624]; + int [] result = new int[632]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -173,48 +173,48 @@ public final class ScilabLexer extends ScilabLexerConstants { "\0\u0e1c\0\u02b0\0\u02b0\0\u02b0\0\u0e72\0\u0ec8\0\u02b0\0\u02b0"+ "\0\u02b0\0\u0f1e\0\u0f74\0\u0fca\0\u1020\0\u1076\0\u10cc\0\u1122"+ "\0\u1178\0\u11ce\0\u1224\0\u127a\0\u12d0\0\u1326\0\u137c\0\u13d2"+ - "\0\u1428\0\u147e\0\u14d4\0\u152a\0\u02b0\0\u02b0\0\u1580\0\u1580"+ - "\0\u15d6\0\u15d6\0\u02b0\0\u162c\0\u02b0\0\u02b0\0\u1682\0\u16d8"+ - "\0\u172e\0\u0306\0\u1784\0\u17da\0\u05b6\0\u1830\0\u03b2\0\u1886"+ - "\0\u18dc\0\u1932\0\u1988\0\u19de\0\u02b0\0\u02b0\0\u1a34\0\u1a8a"+ - "\0\u1ae0\0\u1b36\0\u1b8c\0\u1be2\0\u02b0\0\u1c38\0\u1c8e\0\u1ce4"+ - "\0\u1d3a\0\u1d90\0\u1de6\0\u1e3c\0\u1e92\0\u1ee8\0\u03b2\0\u1f3e"+ - "\0\u1f94\0\u1fea\0\u2040\0\u2096\0\u03b2\0\u20ec\0\u2142\0\u2198"+ - "\0\u21ee\0\u2244\0\u229a\0\u22f0\0\u2346\0\u239c\0\u0e72\0\u23f2"+ - "\0\u0f1e\0\u02b0\0\u2448\0\u0f74\0\u249e\0\u24f4\0\u254a\0\u25a0"+ + "\0\u1428\0\u147e\0\u14d4\0\u152a\0\u1580\0\u15d6\0\u02b0\0\u02b0"+ + "\0\u162c\0\u162c\0\u1682\0\u1682\0\u02b0\0\u16d8\0\u02b0\0\u02b0"+ + "\0\u172e\0\u1784\0\u17da\0\u0306\0\u1830\0\u1886\0\u05b6\0\u18dc"+ + "\0\u03b2\0\u1932\0\u1988\0\u19de\0\u1a34\0\u1a8a\0\u02b0\0\u02b0"+ + "\0\u1ae0\0\u1b36\0\u1b8c\0\u1be2\0\u1c38\0\u1c8e\0\u02b0\0\u1ce4"+ + "\0\u1d3a\0\u1d90\0\u1de6\0\u1e3c\0\u1e92\0\u1ee8\0\u1f3e\0\u1f94"+ + "\0\u03b2\0\u1fea\0\u2040\0\u2096\0\u20ec\0\u2142\0\u03b2\0\u2198"+ + "\0\u21ee\0\u2244\0\u229a\0\u22f0\0\u2346\0\u239c\0\u23f2\0\u2448"+ + "\0\u0e72\0\u249e\0\u0f1e\0\u02b0\0\u24f4\0\u0f74\0\u254a\0\u25a0"+ "\0\u25f6\0\u264c\0\u26a2\0\u26f8\0\u274e\0\u27a4\0\u27fa\0\u2850"+ "\0\u28a6\0\u28fc\0\u2952\0\u29a8\0\u29fe\0\u2a54\0\u2aaa\0\u2b00"+ "\0\u2b56\0\u2bac\0\u2c02\0\u2c58\0\u2cae\0\u2d04\0\u2d5a\0\u2db0"+ - "\0\u2e06\0\u2e5c\0\u2eb2\0\u2f08\0\u2f5e\0\u152a\0\u02b0\0\u15d6"+ - "\0\u2fb4\0\u16d8\0\u300a\0\u3060\0\u30b6\0\u310c\0\u3162\0\u31b8"+ - "\0\u19de\0\u320e\0\u3264\0\u32ba\0\u3310\0\u3366\0\u33bc\0\u3412"+ + "\0\u2e06\0\u2e5c\0\u2eb2\0\u2f08\0\u2f5e\0\u2fb4\0\u300a\0\u3060"+ + "\0\u30b6\0\u15d6\0\u02b0\0\u1682\0\u310c\0\u1784\0\u3162\0\u31b8"+ + "\0\u320e\0\u3264\0\u32ba\0\u3310\0\u1a8a\0\u3366\0\u33bc\0\u3412"+ "\0\u3468\0\u34be\0\u3514\0\u356a\0\u35c0\0\u3616\0\u366c\0\u36c2"+ "\0\u3718\0\u376e\0\u37c4\0\u381a\0\u3870\0\u38c6\0\u391c\0\u3972"+ - "\0\u239c\0\u39c8\0\u3a1e\0\u0f1e\0\u3a74\0\u3aca\0\u3b20\0\u3b76"+ + "\0\u39c8\0\u3a1e\0\u3a74\0\u3aca\0\u2448\0\u3b20\0\u3b76\0\u0f1e"+ "\0\u3bcc\0\u3c22\0\u3c78\0\u3cce\0\u3d24\0\u3d7a\0\u3dd0\0\u3e26"+ "\0\u3e7c\0\u3ed2\0\u3f28\0\u3f7e\0\u3fd4\0\u402a\0\u4080\0\u40d6"+ "\0\u412c\0\u4182\0\u41d8\0\u422e\0\u4284\0\u42da\0\u4330\0\u4386"+ "\0\u43dc\0\u4432\0\u4488\0\u44de\0\u4534\0\u458a\0\u45e0\0\u4636"+ - "\0\u468c\0\u46e2\0\u4738\0\u478e\0\u47e4\0\u03b2\0\u483a\0\u4890"+ - "\0\u48e6\0\u493c\0\u4992\0\u49e8\0\u4a3e\0\u4a94\0\u02b0\0\u4aea"+ - "\0\u4b40\0\u4b96\0\u4bec\0\u4c42\0\u4c98\0\u4cee\0\u4d44\0\u4d9a"+ - "\0\u4df0\0\u4e46\0\u4e9c\0\u02b0\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4"+ - "\0\u504a\0\u50a0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e\0\u52a4"+ - "\0\u52fa\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u54a8\0\u54fe\0\u300a"+ - "\0\u5554\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702\0\u5758\0\u57ae"+ + "\0\u468c\0\u46e2\0\u4738\0\u478e\0\u47e4\0\u483a\0\u4890\0\u48e6"+ + "\0\u493c\0\u4992\0\u49e8\0\u03b2\0\u4a3e\0\u4a94\0\u4aea\0\u4b40"+ + "\0\u4b96\0\u4bec\0\u4c42\0\u4c98\0\u02b0\0\u4cee\0\u4d44\0\u4d9a"+ + "\0\u4df0\0\u4e46\0\u4e9c\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4\0\u504a"+ + "\0\u50a0\0\u02b0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e\0\u52a4"+ + "\0\u52fa\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u54a8\0\u54fe\0\u5554"+ + "\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702\0\u5758\0\u3162\0\u57ae"+ "\0\u5804\0\u585a\0\u58b0\0\u5906\0\u595c\0\u59b2\0\u5a08\0\u5a5e"+ "\0\u5ab4\0\u5b0a\0\u5b60\0\u5bb6\0\u5c0c\0\u5c62\0\u5cb8\0\u5d0e"+ "\0\u5d64\0\u5dba\0\u5e10\0\u5e66\0\u5ebc\0\u5f12\0\u5f68\0\u5fbe"+ - "\0\u6014\0\u606a\0\u60c0\0\u6116\0\u616c\0\u61c2\0\u03b2\0\u6218"+ - "\0\u626e\0\u62c4\0\u631a\0\u6370\0\u63c6\0\u641c\0\u6472\0\u64c8"+ + "\0\u6014\0\u606a\0\u60c0\0\u6116\0\u616c\0\u61c2\0\u6218\0\u626e"+ + "\0\u62c4\0\u631a\0\u6370\0\u63c6\0\u641c\0\u6472\0\u03b2\0\u64c8"+ "\0\u651e\0\u6574\0\u65ca\0\u6620\0\u6676\0\u66cc\0\u6722\0\u6778"+ "\0\u67ce\0\u6824\0\u687a\0\u68d0\0\u6926\0\u697c\0\u69d2\0\u6a28"+ "\0\u6a7e\0\u6ad4\0\u6b2a\0\u6b80\0\u6bd6\0\u6c2c\0\u6c82\0\u6cd8"+ "\0\u6d2e\0\u6d84\0\u6dda\0\u6e30\0\u6e86\0\u6edc\0\u6f32\0\u6f88"+ "\0\u6fde\0\u7034\0\u708a\0\u70e0\0\u7136\0\u718c\0\u71e2\0\u7238"+ "\0\u728e\0\u72e4\0\u733a\0\u7390\0\u73e6\0\u743c\0\u7492\0\u74e8"+ - "\0\u753e\0\u6b80\0\u03b2\0\u7594\0\u02b0\0\u75ea\0\u7640\0\u7696"+ - "\0\u76ec\0\u7742\0\u7798\0\u77ee\0\u7844\0\u789a\0\u78f0\0\u7946"+ + "\0\u753e\0\u7594\0\u75ea\0\u7640\0\u7696\0\u76ec\0\u7742\0\u7798"+ + "\0\u77ee\0\u6e30\0\u03b2\0\u7844\0\u02b0\0\u789a\0\u78f0\0\u7946"+ "\0\u799c\0\u79f2\0\u7a48\0\u7a9e\0\u7af4\0\u7b4a\0\u7ba0\0\u7bf6"+ "\0\u7c4c\0\u7ca2\0\u7cf8\0\u7d4e\0\u7da4\0\u7dfa\0\u7e50\0\u7ea6"+ "\0\u7efc\0\u7f52\0\u7fa8\0\u7ffe\0\u8054\0\u80aa\0\u8100\0\u8156"+ @@ -241,10 +241,11 @@ public final class ScilabLexer extends ScilabLexerConstants { "\0\ub76c\0\ub7c2\0\ub818\0\ub86e\0\ub8c4\0\ub91a\0\ub970\0\ub9c6"+ "\0\uba1c\0\uba72\0\ubac8\0\ubb1e\0\ubb74\0\ubbca\0\ubc20\0\ubc76"+ "\0\ubccc\0\ubd22\0\ubd78\0\ubdce\0\ube24\0\ube7a\0\ubed0\0\ubf26"+ - "\0\ubf7c\0\ubfd2\0\uc028\0\uc07e\0\uc0d4\0\uc12a\0\uc180\0\uc1d6"; + "\0\ubf7c\0\ubfd2\0\uc028\0\uc07e\0\uc0d4\0\uc12a\0\uc180\0\uc1d6"+ + "\0\uc22c\0\uc282\0\uc2d8\0\uc32e\0\uc384\0\uc3da\0\uc430\0\uc486"; private static int [] zzUnpackRowMap() { - int [] result = new int[624]; + int [] result = new int[632]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -278,335 +279,339 @@ public final class ScilabLexer extends ScilabLexerConstants { "\6\61\1\66\101\61\1\67\1\70\1\67\3\0\1\71"+ "\3\67\1\72\16\67\1\73\3\67\1\74\1\75\1\76"+ "\1\77\1\100\3\67\1\101\1\102\2\67\1\103\2\67"+ - "\1\104\2\67\1\105\2\67\1\106\1\67\1\107\1\110"+ - "\11\67\1\111\1\67\1\112\12\67\1\113\12\67\1\70"+ - "\1\67\3\0\1\71\3\67\1\72\5\67\1\114\10\67"+ - "\1\73\3\67\1\74\1\75\1\76\1\77\1\100\3\67"+ - "\1\101\1\102\2\67\1\103\2\67\1\104\2\67\1\105"+ - "\2\67\1\106\1\67\1\107\1\110\11\67\1\111\1\67"+ - "\1\112\12\67\1\113\11\67\2\115\1\116\3\0\1\115"+ - "\1\117\1\115\1\117\1\120\1\117\21\115\31\117\3\115"+ - "\33\117\3\115\1\121\1\116\3\0\1\122\7\115\1\123"+ - "\107\115\1\124\1\125\4\124\1\126\13\124\1\115\2\124"+ - "\1\127\2\124\1\115\75\124\1\63\1\125\1\63\3\0"+ - "\1\126\15\63\1\130\1\131\100\63\127\0\1\132\4\0"+ - "\1\133\120\0\1\133\4\0\1\134\1\135\125\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\33\14"+ - "\14\0\1\136\122\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\5\14\1\137\15\14\1\137\5\14\3\0\5\14"+ - "\1\140\1\137\2\14\1\141\4\14\1\142\1\14\1\143"+ - "\2\14\2\137\5\14\1\137\16\0\1\144\131\0\1\145"+ - "\11\0\1\146\113\0\1\146\3\0\1\147\1\146\4\0"+ - "\1\146\34\0\2\146\67\0\1\146\113\0\1\146\3\0"+ - "\1\147\1\146\4\0\2\146\33\0\2\146\52\0\1\145"+ - "\2\0\1\150\3\0\1\151\1\152\1\153\3\0\1\146"+ - "\34\0\1\152\1\145\55\0\1\154\3\0\1\145\1\155"+ - "\4\0\1\146\102\0\1\156\1\0\2\156\11\0\1\153"+ - "\1\0\1\32\6\0\3\156\2\157\24\156\3\0\4\156"+ - "\2\157\25\156\34\0\2\145\124\0\1\145\102\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\2\14\1\160\26\14"+ + "\1\104\2\67\1\105\1\106\1\67\1\107\1\67\1\110"+ + "\1\111\11\67\1\112\1\67\1\113\12\67\1\114\1\115"+ + "\11\67\1\70\1\67\3\0\1\71\3\67\1\72\5\67"+ + "\1\116\10\67\1\73\3\67\1\74\1\75\1\76\1\77"+ + "\1\100\3\67\1\101\1\102\2\67\1\103\2\67\1\104"+ + "\2\67\1\105\1\106\1\67\1\107\1\67\1\110\1\111"+ + "\11\67\1\112\1\67\1\113\12\67\1\114\1\115\10\67"+ + "\2\117\1\120\3\0\1\117\1\121\1\117\1\121\1\122"+ + "\1\121\21\117\31\121\3\117\33\121\3\117\1\123\1\120"+ + "\3\0\1\124\7\117\1\125\107\117\1\126\1\127\4\126"+ + "\1\130\13\126\1\117\2\126\1\131\2\126\1\117\75\126"+ + "\1\63\1\127\1\63\3\0\1\130\15\63\1\132\1\133"+ + "\100\63\127\0\1\134\4\0\1\135\120\0\1\135\4\0"+ + "\1\136\1\137\125\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\31\14\3\0\33\14\14\0\1\140\122\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\5\14\1\141\15\14"+ + "\1\141\5\14\3\0\5\14\1\142\1\141\2\14\1\143"+ + "\4\14\1\144\1\14\1\145\2\14\2\141\5\14\1\141"+ + "\16\0\1\146\131\0\1\147\11\0\1\150\113\0\1\150"+ + "\3\0\1\151\1\150\4\0\1\150\34\0\2\150\67\0"+ + "\1\150\113\0\1\150\3\0\1\151\1\150\4\0\2\150"+ + "\33\0\2\150\52\0\1\147\2\0\1\152\3\0\1\153"+ + "\1\154\1\155\3\0\1\150\34\0\1\154\1\147\55\0"+ + "\1\156\3\0\1\147\1\157\4\0\1\150\102\0\1\160"+ + "\1\0\2\160\11\0\1\155\1\0\1\32\6\0\3\160"+ + "\2\161\24\160\3\0\4\160\2\161\25\160\34\0\2\147"+ + "\124\0\1\147\102\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\2\14\1\162\26\14\3\0\33\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\14\14\1\163\14\14"+ "\3\0\33\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\14\14\1\161\14\14\3\0\33\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\22\14\1\162\6\14"+ - "\3\0\33\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\2\14\1\163\30\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\22\14"+ - "\1\164\10\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\1\14\1\165\15\14\1\166\13\14"+ + "\6\0\22\14\1\164\6\14\3\0\33\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\2\14"+ + "\1\165\30\14\11\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\31\14\3\0\22\14\1\166\10\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\1\14"+ + "\1\167\15\14\1\170\13\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\17\14\1\171\13\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\14\14\1\172\1\14\1\173\11\14\1\174\2\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\17\14\1\167\13\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\14\14\1\170\1\14"+ - "\1\171\11\14\1\172\2\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\17\14\1\173\5\14"+ - "\1\174\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\6\14\1\175\24\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\24\14"+ - "\1\176\6\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\1\14\1\177\31\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\25\14"+ - "\1\172\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\5\14\1\200\25\14\11\0\1\14"+ + "\3\0\17\14\1\175\5\14\1\176\5\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\6\14"+ + "\1\177\24\14\11\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\31\14\3\0\24\14\1\200\6\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\1\14"+ + "\1\201\31\14\11\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\31\14\3\0\25\14\1\174\5\14\11\0\1\14"+ "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\5\14"+ - "\1\201\21\14\1\202\3\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\10\14\1\203\11\14"+ - "\1\204\10\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\10\14\1\205\22\14\126\0\1\206"+ - "\1\0\1\61\2\0\2\61\2\0\1\61\1\207\4\61"+ - "\1\207\6\61\1\0\101\61\10\0\1\61\4\0\1\61"+ - "\134\0\1\210\101\0\12\211\1\212\54\211\1\213\36\211"+ - "\1\0\1\214\4\0\1\214\14\0\2\215\1\0\1\215"+ - "\6\0\31\215\3\0\33\215\77\0\1\216\7\0\1\217"+ - "\1\0\1\220\114\0\1\221\14\0\1\222\104\0\1\223"+ - "\3\0\1\224\6\0\1\225\65\0\1\226\34\0\1\227"+ - "\75\0\1\230\4\0\1\231\120\0\1\232\34\0\1\233"+ - "\114\0\1\234\121\0\1\235\7\0\1\236\115\0\1\237"+ - "\7\0\1\240\115\0\1\241\3\0\1\242\3\0\1\243"+ - "\12\0\1\244\4\0\1\245\105\0\1\246\115\0\1\247"+ - "\134\0\1\250\126\0\1\251\12\0\1\252\125\0\1\253"+ - "\107\0\1\254\6\0\1\255\37\0\1\256\4\0\1\257"+ - "\107\0\1\117\1\0\2\117\13\0\1\117\6\0\31\117"+ - "\3\0\33\117\3\0\1\260\4\0\1\260\7\0\1\123"+ - "\107\0\1\124\1\0\4\124\1\0\13\124\1\0\2\124"+ - "\1\0\2\124\1\0\75\124\6\261\1\0\16\261\1\155"+ - "\100\261\24\0\1\262\126\0\1\155\101\0\1\133\4\0"+ - "\1\133\120\0\1\133\4\0\1\134\117\0\10\136\1\263"+ - "\1\136\1\264\2\136\1\263\51\136\1\265\36\136\7\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\20\14\1\266\12\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\16\14\1\267\14\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\1\14\1\270\31\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\11\14\1\137\21\14\16\0"+ - "\1\271\131\0\2\146\1\0\1\146\1\0\1\146\41\0"+ - "\2\146\55\0\1\145\3\0\1\145\125\0\1\151\125\0"+ - "\1\145\127\0\1\153\11\0\2\272\33\0\2\272\47\0"+ - "\1\154\114\0\1\156\1\0\2\156\13\0\1\156\6\0"+ - "\31\156\3\0\33\156\11\0\1\156\1\0\2\156\6\0"+ - "\1\273\1\0\1\273\2\0\1\274\6\0\31\156\3\0"+ - "\33\156\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ - "\10\14\1\275\20\14\3\0\33\14\11\0\1\14\1\0"+ - "\2\14\13\0\1\14\6\0\17\14\1\276\11\14\3\0"+ - "\33\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ - "\2\14\1\277\26\14\3\0\33\14\11\0\1\14\1\0"+ - "\2\14\13\0\1\14\6\0\31\14\3\0\17\14\1\300"+ - "\13\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ - "\31\14\3\0\5\14\1\301\25\14\11\0\1\14\1\0"+ - "\2\14\13\0\1\14\6\0\31\14\3\0\23\14\1\302"+ - "\1\303\6\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\16\14\1\304\14\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\23\14"+ - "\1\305\7\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\4\14\1\306\26\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\11\14"+ - "\1\307\21\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\22\14\1\175\10\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\16\14"+ - "\1\310\14\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\10\14\1\311\22\14\11\0\1\14"+ - "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\25\14"+ - "\1\312\5\14\11\0\1\14\1\0\2\14\13\0\1\14"+ - "\6\0\31\14\3\0\23\14\1\313\1\314\6\14\11\0"+ + "\1\202\25\14\11\0\1\14\1\0\2\14\13\0\1\14"+ + "\6\0\31\14\3\0\5\14\1\203\21\14\1\204\3\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\10\14\1\205\11\14\1\206\10\14\11\0\1\14"+ + "\1\0\2\14\13\0\1\14\6\0\31\14\3\0\10\14"+ + "\1\207\22\14\126\0\1\210\1\0\1\61\2\0\2\61"+ + "\2\0\1\61\1\211\4\61\1\211\6\61\1\0\101\61"+ + "\10\0\1\61\4\0\1\61\134\0\1\212\101\0\12\213"+ + "\1\214\54\213\1\215\36\213\1\0\1\216\4\0\1\216"+ + "\14\0\2\217\1\0\1\217\6\0\31\217\3\0\33\217"+ + "\77\0\1\220\7\0\1\221\1\0\1\222\114\0\1\223"+ + "\14\0\1\224\104\0\1\225\3\0\1\226\6\0\1\227"+ + "\65\0\1\230\34\0\1\231\75\0\1\232\4\0\1\233"+ + "\120\0\1\234\34\0\1\235\114\0\1\236\121\0\1\237"+ + "\7\0\1\240\115\0\1\241\7\0\1\242\115\0\1\243"+ + "\3\0\1\244\3\0\1\245\12\0\1\246\4\0\1\247"+ + "\56\0\1\250\34\0\1\251\117\0\1\252\115\0\1\253"+ + "\134\0\1\254\126\0\1\255\12\0\1\256\125\0\1\257"+ + "\107\0\1\260\6\0\1\261\127\0\1\251\35\0\1\262"+ + "\4\0\1\263\107\0\1\121\1\0\2\121\13\0\1\121"+ + "\6\0\31\121\3\0\33\121\3\0\1\264\4\0\1\264"+ + "\7\0\1\125\107\0\1\126\1\0\4\126\1\0\13\126"+ + "\1\0\2\126\1\0\2\126\1\0\75\126\6\265\1\0"+ + "\16\265\1\157\100\265\24\0\1\266\126\0\1\157\101\0"+ + "\1\135\4\0\1\135\120\0\1\135\4\0\1\136\117\0"+ + "\10\140\1\267\1\140\1\270\2\140\1\267\51\140\1\271"+ + "\36\140\7\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\20\14\1\272\12\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\16\14\1\273"+ + "\14\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\1\14\1\274\31\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\11\14\1\141"+ + "\21\14\16\0\1\275\131\0\2\150\1\0\1\150\1\0"+ + "\1\150\41\0\2\150\55\0\1\147\3\0\1\147\125\0"+ + "\1\153\125\0\1\147\127\0\1\155\11\0\2\276\33\0"+ + "\2\276\47\0\1\156\114\0\1\160\1\0\2\160\13\0"+ + "\1\160\6\0\31\160\3\0\33\160\11\0\1\160\1\0"+ + "\2\160\6\0\1\277\1\0\1\277\2\0\1\300\6\0"+ + "\31\160\3\0\33\160\11\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\10\14\1\301\20\14\3\0\33\14\11\0"+ + "\1\14\1\0\2\14\13\0\1\14\6\0\17\14\1\302"+ + "\11\14\3\0\33\14\11\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\2\14\1\303\26\14\3\0\33\14\11\0"+ "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\14\14\1\315\16\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\11\14\1\316\21\14\11\0"+ + "\17\14\1\304\13\14\11\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\31\14\3\0\5\14\1\305\25\14\11\0"+ "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\5\14\1\317\25\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\31\14\1\175\1\14\11\0"+ + "\23\14\1\306\1\307\6\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\16\14\1\310\14\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\23\14\1\311\7\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\4\14\1\312\26\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\11\14\1\313\21\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\22\14\1\177\10\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\16\14\1\314\14\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\10\14\1\315\22\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\25\14\1\316\5\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\23\14\1\317\1\320"+ + "\6\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\14\14\1\321\16\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\11\14\1\322"+ + "\21\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\5\14\1\323\25\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\31\14\1\177"+ + "\1\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\11\14\1\324\21\14\126\0\1\325\2\0"+ + "\1\326\4\0\1\326\15\0\1\212\1\327\100\0\12\213"+ + "\1\330\54\213\1\215\36\213\23\0\2\217\1\0\1\217"+ + "\5\0\1\331\31\217\3\0\33\217\100\0\1\332\134\0"+ + "\1\333\135\0\1\334\123\0\1\335\130\0\1\336\114\0"+ + "\1\337\115\0\1\340\122\0\1\341\3\0\1\342\72\0"+ + "\1\343\162\0\1\344\101\0\1\345\116\0\1\346\136\0"+ + "\1\347\162\0\1\350\125\0\1\351\121\0\1\352\112\0"+ + "\1\353\147\0\1\354\105\0\1\355\135\0\1\356\132\0"+ + "\1\357\120\0\1\360\115\0\1\361\134\0\1\362\60\0"+ + "\1\363\162\0\1\364\137\0\1\365\125\0\1\366\126\0"+ + "\1\367\122\0\1\370\131\0\1\371\131\0\1\256\125\0"+ + "\1\372\103\0\1\373\32\0\6\265\1\0\16\265\1\0"+ + "\100\265\10\0\1\140\4\0\1\140\120\0\1\214\4\0"+ + "\1\214\110\0\10\140\1\267\1\140\1\374\2\140\1\267"+ + "\51\140\1\271\36\140\7\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\31\14\3\0\23\14\1\141\7\14\11\0"+ "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\11\14\1\320\21\14\126\0\1\321\2\0\1\322\4\0"+ - "\1\322\15\0\1\210\1\323\100\0\12\211\1\324\54\211"+ - "\1\213\36\211\23\0\2\215\1\0\1\215\5\0\1\325"+ - "\31\215\3\0\33\215\100\0\1\326\134\0\1\327\135\0"+ - "\1\330\123\0\1\331\130\0\1\332\114\0\1\333\115\0"+ - "\1\334\122\0\1\335\3\0\1\336\72\0\1\337\162\0"+ - "\1\340\101\0\1\341\116\0\1\342\136\0\1\343\162\0"+ - "\1\344\125\0\1\345\121\0\1\346\112\0\1\347\147\0"+ - "\1\350\105\0\1\351\135\0\1\352\132\0\1\353\120\0"+ - "\1\354\115\0\1\355\134\0\1\356\127\0\1\357\125\0"+ - "\1\360\126\0\1\361\122\0\1\362\131\0\1\363\131\0"+ - "\1\252\125\0\1\364\103\0\1\365\32\0\6\261\1\0"+ - "\16\261\1\0\100\261\10\0\1\136\4\0\1\136\120\0"+ - "\1\212\4\0\1\212\110\0\10\136\1\263\1\136\1\366"+ - "\2\136\1\263\51\136\1\265\36\136\7\0\1\14\1\0"+ - "\2\14\13\0\1\14\6\0\31\14\3\0\23\14\1\137"+ + "\6\14\1\141\24\14\11\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\31\14\3\0\16\14\1\141\14\14\23\0"+ + "\1\277\1\0\1\277\2\0\1\277\125\0\1\277\106\0"+ + "\1\160\1\0\2\160\13\0\1\300\6\0\31\160\3\0"+ + "\33\160\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\7\14\1\375\21\14\3\0\33\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\3\14\1\376\25\14\3\0"+ + "\33\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\10\14\1\141\20\14\3\0\33\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\22\14\1\313"+ + "\10\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\1\14\1\377\31\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\5\14\1\171"+ + "\25\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\3\14\1\u0100\27\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\24\14\1\u0101"+ + "\6\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\5\14\1\u0102\25\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\6\14\1\u0103"+ + "\24\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\24\14\1\u0104\6\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\3\14\1\u0105"+ + "\27\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\5\14\1\u0106\25\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\23\14\1\u0107"+ "\7\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ - "\31\14\3\0\6\14\1\137\24\14\11\0\1\14\1\0"+ - "\2\14\13\0\1\14\6\0\31\14\3\0\16\14\1\137"+ - "\14\14\23\0\1\273\1\0\1\273\2\0\1\273\125\0"+ - "\1\273\106\0\1\156\1\0\2\156\13\0\1\274\6\0"+ - "\31\156\3\0\33\156\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\7\14\1\367\21\14\3\0\33\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\3\14\1\370"+ - "\25\14\3\0\33\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\10\14\1\137\20\14\3\0\33\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\22\14\1\307\10\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\1\14\1\371\31\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\5\14\1\167\25\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\3\14\1\372\27\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\24\14\1\373\6\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\5\14\1\374\25\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\6\14\1\375\24\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\24\14\1\376\6\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\3\14\1\377\27\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\5\14\1\u0100\25\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\23\14\1\u0101\7\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\25\14\1\u0102\5\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\25\14\1\u0103\5\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\5\14\1\u0104\25\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\24\14\1\u0105\6\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\16\14\1\167\14\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\14\14\1\u0106\16\14\3\0\1\322\4\0\1\322\16\0"+ - "\1\323\125\0\1\u0107\123\0\1\u0108\2\0\1\u0108\6\0"+ - "\31\u0108\4\0\32\u0108\107\0\1\u0109\112\0\1\u010a\143\0"+ - "\1\u010b\124\0\1\u010c\125\0\1\u010d\120\0\1\u010e\136\0"+ - "\1\u010f\130\0\1\u0110\115\0\1\u0111\64\0\1\u0112\162\0"+ - "\1\u0113\62\0\1\u0114\74\0\1\u0115\164\0\1\u0116\162\0"+ - "\1\u0117\133\0\1\u0118\133\0\1\u0119\110\0\1\u011a\131\0"+ - "\1\u011b\133\0\1\u011c\130\0\1\u011d\107\0\1\u011e\135\0"+ - "\1\u011f\126\0\1\u0120\133\0\1\u0121\102\0\1\u0122\140\0"+ - "\1\u0123\134\0\1\u0124\105\0\1\u0125\56\0\1\u0126\64\0"+ - "\1\u0125\122\0\1\u0125\43\0\1\u0127\76\0\10\136\1\u0128"+ - "\1\136\1\264\2\136\1\u0128\51\136\1\265\36\136\7\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\16\14\1\u0129"+ - "\12\14\3\0\33\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\10\14\1\u012a\20\14\3\0\33\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\13\14\1\376\17\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\10\14\1\167\22\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\11\14\1\u012b\21\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\11\14\1\u012c\21\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\25\14\1\174\5\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\24\14\1\u012d\6\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\22\14\1\u012e\10\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\5\14\1\376\25\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\15\14\1\u0101\15\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\22\14\1\u012f\10\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\3\14\1\u0130\27\14\11\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\3\14\1\u0131\27\14\11\0"+ - "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\5\14\1\175\25\14\25\0\1\u0108\1\u0132\1\0\1\u0108"+ - "\6\0\31\u0108\4\0\32\u0108\104\0\1\u0133\132\0\1\u0134"+ - "\120\0\1\u0135\115\0\1\u0136\143\0\1\u0137\136\0\1\u0138"+ - "\106\0\1\u0139\120\0\1\u013a\126\0\1\u013b\107\0\1\u013c"+ - "\162\0\1\u013d\53\0\1\u013e\117\0\1\u0114\162\0\1\u0114"+ - "\141\0\1\u013f\115\0\1\u0140\121\0\1\u0141\41\0\1\u0142"+ - "\232\0\1\u0143\110\0\1\u0144\125\0\1\u0145\136\0\1\u0146"+ - "\117\0\1\u0147\122\0\1\u0148\125\0\1\u0149\35\0\1\u014a"+ - "\232\0\1\u014b\41\0\1\u0126\123\0\1\u014c\125\0\1\u0126"+ + "\31\14\3\0\25\14\1\u0108\5\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\25\14\1\u0109"+ + "\5\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\5\14\1\u010a\25\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\24\14\1\u010b"+ + "\6\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\16\14\1\171\14\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\14\14\1\u010c"+ + "\16\14\3\0\1\326\4\0\1\326\16\0\1\327\125\0"+ + "\1\u010d\123\0\1\u010e\2\0\1\u010e\6\0\31\u010e\4\0"+ + "\32\u010e\107\0\1\u010f\112\0\1\u0110\143\0\1\u0111\124\0"+ + "\1\u0112\125\0\1\u0113\120\0\1\u0114\136\0\1\u0115\130\0"+ + "\1\u0116\115\0\1\u0117\64\0\1\u0118\162\0\1\u0119\62\0"+ + "\1\u011a\74\0\1\u011b\164\0\1\u011c\162\0\1\u011d\133\0"+ + "\1\u011e\133\0\1\u011f\110\0\1\u0120\131\0\1\u0121\133\0"+ + "\1\u0122\130\0\1\u0123\107\0\1\u0124\135\0\1\u0125\126\0"+ + "\1\u0126\133\0\1\u0127\61\0\1\u0128\162\0\1\u0128\111\0"+ + "\1\u0129\140\0\1\u012a\134\0\1\u012b\105\0\1\u012c\56\0"+ + "\1\u012d\64\0\1\u012c\122\0\1\u012c\43\0\1\u012e\76\0"+ + "\10\140\1\u012f\1\140\1\270\2\140\1\u012f\51\140\1\271"+ + "\36\140\7\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\16\14\1\u0130\12\14\3\0\33\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\10\14\1\u0131\20\14\3\0"+ + "\33\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\13\14\1\u0104\17\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\10\14\1\171"+ + "\22\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\11\14\1\u0132\21\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\11\14\1\u0133"+ + "\21\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\25\14\1\176\5\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\24\14\1\u0134"+ + "\6\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\22\14\1\u0135\10\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\5\14\1\u0104"+ + "\25\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\15\14\1\u0107\15\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\22\14\1\u0136"+ + "\10\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\3\14\1\u0137\27\14\11\0\1\14\1\0"+ + "\2\14\13\0\1\14\6\0\31\14\3\0\3\14\1\u0138"+ + "\27\14\11\0\1\14\1\0\2\14\13\0\1\14\6\0"+ + "\31\14\3\0\5\14\1\177\25\14\25\0\1\u010e\1\u0139"+ + "\1\0\1\u010e\6\0\31\u010e\4\0\32\u010e\104\0\1\u013a"+ + "\132\0\1\u013b\120\0\1\u013c\115\0\1\u013d\143\0\1\u013e"+ + "\136\0\1\u013f\106\0\1\u0140\120\0\1\u0141\126\0\1\u0142"+ + "\107\0\1\u0143\162\0\1\u0144\53\0\1\u0145\117\0\1\u011a"+ + "\162\0\1\u011a\141\0\1\u0146\115\0\1\u0147\121\0\1\u0148"+ + "\41\0\1\u0149\232\0\1\u014a\110\0\1\u014b\125\0\1\u014c"+ + "\136\0\1\u014d\117\0\1\u014e\122\0\1\u014f\30\0\1\u0150"+ + "\4\0\1\u0150\20\0\1\u0150\174\0\1\u0151\35\0\1\u0152"+ + "\232\0\1\u0153\41\0\1\u012d\123\0\1\u0154\125\0\1\u012d"+ "\107\0\1\14\1\0\2\14\13\0\1\14\6\0\14\14"+ - "\1\u014d\14\14\3\0\33\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\21\14\1\137\7\14\3\0\33\14"+ + "\1\u0155\14\14\3\0\33\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\21\14\1\141\7\14\3\0\33\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\16\14\1\u014e\14\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\6\14\1\u014f\24\14"+ + "\3\0\16\14\1\u0156\14\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\6\14\1\u0157\24\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\11\14\1\u0150\21\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\27\14\1\u0151\3\14"+ + "\3\0\11\14\1\u0158\21\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\27\14\1\u0159\3\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\16\14\1\376\14\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\24\14\1\175\6\14"+ + "\3\0\16\14\1\u0104\14\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\24\14\1\177\6\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\10\14\1\175\22\14\25\0\1\u0108\2\0\1\u0108"+ - "\6\0\31\u0152\4\0\32\u0152\111\0\1\u0153\24\0\1\u0154"+ - "\226\0\1\u0155\131\0\1\u0156\20\0\1\u0157\234\0\1\u0158"+ - "\104\0\1\u0159\127\0\1\u015a\136\0\1\u015b\57\0\1\u015c"+ - "\162\0\1\u015d\142\0\1\u015e\110\0\1\u015f\134\0\1\u0160"+ - "\116\0\1\u0161\65\0\1\u0162\165\0\1\u0163\134\0\1\u0164"+ - "\26\0\1\u0165\125\0\1\u0166\211\0\1\u0167\147\0\1\u0168"+ - "\120\0\1\u0169\55\0\1\u016a\74\0\1\u016b\144\0\1\u016c"+ - "\107\0\1\14\1\0\2\14\13\0\1\14\6\0\4\14"+ - "\1\137\24\14\3\0\33\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\25\14\1\u0101\5\14"+ + "\3\0\10\14\1\177\22\14\25\0\1\u010e\2\0\1\u010e"+ + "\6\0\31\u015a\4\0\32\u015a\111\0\1\u015b\24\0\1\u015c"+ + "\226\0\1\u015d\131\0\1\u015e\20\0\1\u015f\234\0\1\u0160"+ + "\104\0\1\u0161\127\0\1\u0162\136\0\1\u0163\57\0\1\u0164"+ + "\162\0\1\u0165\142\0\1\u0166\110\0\1\u0167\134\0\1\u0168"+ + "\116\0\1\u0169\65\0\1\u016a\165\0\1\u016b\134\0\1\u016c"+ + "\26\0\1\u016d\125\0\1\u016e\211\0\1\u016f\147\0\1\u0170"+ + "\11\0\2\u0150\1\0\123\u0150\107\0\1\u0171\55\0\1\u0172"+ + "\74\0\1\u0173\144\0\1\u0174\107\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\4\14\1\141\24\14\3\0\33\14"+ "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ - "\3\0\17\14\1\u016d\13\14\11\0\1\14\1\0\2\14"+ - "\13\0\1\14\6\0\31\14\3\0\11\14\1\u016e\21\14"+ - "\25\0\1\u0108\1\u0132\1\0\1\u0108\6\0\31\u016f\4\0"+ - "\32\u016f\100\0\1\u0170\66\0\1\u0171\17\0\1\u0172\144\0"+ - "\1\u0173\124\0\1\u0174\76\0\1\u0175\155\0\1\u0176\35\0"+ - "\1\u0177\125\0\1\u0178\234\0\1\u0179\63\0\1\u0114\162\0"+ - "\1\u0114\125\0\1\u017a\23\0\1\u017b\125\0\1\u017c\224\0"+ - "\1\u017d\65\0\1\u017e\34\0\1\u017f\31\0\1\u0180\125\0"+ - "\1\u0181\176\0\1\u0182\111\0\1\u0183\171\0\1\u0184\133\0"+ - "\1\u0185\125\0\1\u0186\63\0\1\u0187\34\0\1\u0188\66\0"+ - "\1\u0189\54\0\1\u018a\2\0\1\u018a\3\0\1\u018a\1\0"+ - "\4\u018a\1\0\110\u018a\7\0\1\14\1\0\2\14\13\0"+ - "\1\14\6\0\31\14\3\0\16\14\1\u018b\14\14\11\0"+ + "\3\0\25\14\1\u0107\5\14\11\0\1\14\1\0\2\14"+ + "\13\0\1\14\6\0\31\14\3\0\17\14\1\u0175\13\14"+ + "\11\0\1\14\1\0\2\14\13\0\1\14\6\0\31\14"+ + "\3\0\11\14\1\u0176\21\14\25\0\1\u010e\1\u0139\1\0"+ + "\1\u010e\6\0\31\u0177\4\0\32\u0177\100\0\1\u0178\66\0"+ + "\1\u0179\17\0\1\u017a\144\0\1\u017b\124\0\1\u017c\76\0"+ + "\1\u017d\155\0\1\u017e\35\0\1\u017f\125\0\1\u0180\234\0"+ + "\1\u0181\63\0\1\u011a\162\0\1\u011a\125\0\1\u0182\23\0"+ + "\1\u0183\125\0\1\u0184\224\0\1\u0185\65\0\1\u0186\34\0"+ + "\1\u0187\31\0\1\u0188\125\0\1\u0189\176\0\1\u018a\111\0"+ + "\1\u018b\171\0\1\u018c\133\0\1\u018d\125\0\1\u018e\63\0"+ + "\1\u018f\34\0\1\u0190\66\0\1\u0191\54\0\1\u0192\2\0"+ + "\1\u0192\3\0\1\u0192\1\0\4\u0192\1\0\110\u0192\7\0"+ "\1\14\1\0\2\14\13\0\1\14\6\0\31\14\3\0"+ - "\23\14\1\302\7\14\3\0\1\u018c\4\0\1\u018c\14\0"+ - "\1\u0108\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u018e"+ - "\4\0\32\u018e\10\0\1\u018f\172\0\1\u0190\34\0\1\u0191"+ - "\62\0\1\u0192\34\0\1\u0193\31\0\1\u0194\125\0\1\u0195"+ - "\172\0\1\u0196\34\0\1\u0197\23\0\1\u0198\157\0\1\u0199"+ - "\130\0\1\u019a\70\0\1\u019b\235\0\1\u019c\63\0\1\u019d"+ - "\117\0\1\u019e\65\0\1\u019f\162\0\1\u01a0\162\0\1\u01a1"+ - "\75\0\1\u01a2\1\u01a3\117\0\1\u01a4\142\0\1\u01a5\34\0"+ - "\1\u01a6\45\0\1\u01a7\34\0\1\u01a8\131\0\1\u01a9\142\0"+ - "\1\u01aa\20\0\1\u01ab\167\0\1\u01ac\162\0\1\u01ad\55\0"+ - "\1\u01ae\34\0\1\u01af\34\0\1\u018c\4\0\1\u018c\24\0"+ - "\1\u018d\73\0\1\u018c\4\0\1\u018c\14\0\1\u0108\1\u0132"+ - "\1\0\1\u0108\4\0\1\u018d\1\0\31\u01b0\4\0\32\u01b0"+ - "\41\0\1\u01b1\144\0\1\u01b2\162\0\1\u01b3\63\0\1\u01b4"+ - "\162\0\1\u01b5\60\0\1\u01b6\130\0\1\u01b7\123\0\1\u01b8"+ - "\162\0\1\u01b9\66\0\1\u01ba\126\0\1\u01bb\34\0\1\u01bc"+ - "\102\0\1\u01bd\34\0\1\u01be\55\0\1\u01bf\176\0\1\u0114"+ - "\61\0\1\u01c0\34\0\1\u01c1\104\0\1\u01c2\34\0\1\u01c3"+ - "\45\0\1\u01c4\141\0\1\u01c5\162\0\1\u01c6\53\0\1\u01c7"+ - "\34\0\1\u01c8\70\0\1\u01c9\34\0\1\u01ca\106\0\1\u01cb"+ - "\34\0\1\u01cc\56\0\1\u01cd\162\0\1\u01ce\105\0\1\u01cf"+ - "\162\0\1\u01d0\20\0\1\u01d1\215\0\1\u01d2\66\0\1\u01d3"+ - "\10\0\1\u01d4\125\0\1\u01d5\162\0\1\u01d6\60\0\1\u01d7"+ - "\162\0\1\u01d8\31\0\1\u018c\4\0\1\u018c\14\0\1\u0108"+ - "\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u01d9\4\0"+ - "\32\u01d9\37\0\1\u01da\142\0\1\u01db\162\0\1\u01dc\71\0"+ - "\1\u01dd\162\0\1\u01de\65\0\1\u01df\34\0\1\u01e0\101\0"+ - "\1\u01e1\34\0\1\u01e2\65\0\1\u01db\162\0\1\u01dc\53\0"+ - "\1\u01e3\34\0\1\u01e4\77\0\1\u01e5\162\0\1\u01e6\71\0"+ - "\1\u01e7\162\0\1\u01e8\54\0\1\u01e9\34\0\1\u01ea\72\0"+ - "\1\u01eb\162\0\1\u01ec\101\0\1\u01ed\162\0\1\u01ee\55\0"+ - "\1\u01ef\34\0\1\u01f0\100\0\1\u01cd\162\0\1\u01ce\75\0"+ - "\1\u01f1\162\0\1\u01f2\74\0\1\u01f3\162\0\1\u01f4\73\0"+ - "\1\u01f5\162\0\1\u01f6\50\0\1\u01f7\162\0\1\u01f8\70\0"+ - "\1\u01f9\162\0\1\u01fa\100\0\1\u01fb\62\0\1\u01fc\172\0"+ - "\1\u01fd\34\0\1\u01fe\56\0\1\u01ff\3\0\1\u01eb\30\0"+ - "\1\u0200\3\0\1\u01ec\64\0\1\u0201\162\0\1\u0202\74\0"+ - "\1\u0203\162\0\1\u0204\24\0\1\u018c\4\0\1\u018c\14\0"+ - "\1\u0108\1\u0132\1\0\1\u0108\4\0\1\u018d\1\0\31\u0108"+ - "\4\0\32\u0108\60\0\1\u0205\110\0\1\u0206\162\0\1\u0207"+ - "\101\0\1\u0114\162\0\1\u0114\63\0\1\u0208\162\0\1\u0209"+ - "\66\0\1\u020a\162\0\1\u020b\77\0\1\u020c\162\0\1\u020d"+ - "\53\0\1\u020e\162\0\1\u020f\74\0\1\u0210\162\0\1\u0211"+ - "\111\0\1\u0212\162\0\1\u0213\43\0\1\u0214\162\0\1\u0215"+ - "\100\0\1\u0216\162\0\1\u0217\104\0\1\u0218\162\0\1\u0219"+ - "\47\0\1\u015c\162\0\1\u015d\71\0\1\u021a\162\0\1\u021b"+ - "\72\0\1\u021c\162\0\1\u021d\103\0\1\u0114\162\0\1\u0114"+ - "\71\0\1\u021e\162\0\1\u021f\64\0\1\u0220\34\0\1\u0221"+ - "\64\0\1\u0222\1\u0223\136\0\1\u0224\162\0\1\u0225\55\0"+ - "\1\u0226\162\0\1\u0227\102\0\1\u021e\162\0\1\u021f\62\0"+ - "\1\u0228\162\0\1\u0229\70\0\1\u022a\133\0\1\u0114\162\0"+ - "\1\u0114\45\0\1\u022b\162\0\1\u022c\114\0\1\u022d\162\0"+ - "\1\u022e\54\0\1\u022f\162\0\1\u0230\74\0\1\u0231\162\0"+ - "\1\u0232\104\0\1\u0114\163\0\1\u0114\47\0\1\u0233\162\0"+ - "\1\u0234\101\0\1\u0233\162\0\1\u0234\47\0\1\u0235\162\0"+ - "\1\u0236\73\0\1\u0237\162\0\1\u0238\67\0\1\u0239\162\0"+ - "\1\u023a\72\0\1\u01b4\162\0\1\u01b5\107\0\1\u023b\162\0"+ - "\1\u023c\70\0\1\u023d\162\0\1\u023e\63\0\1\u023f\34\0"+ - "\1\u0240\56\0\1\u0241\34\0\1\u0242\111\0\1\u0243\162\0"+ - "\1\u0244\47\0\1\u0245\162\0\1\u0246\74\0\1\u0247\162\0"+ - "\1\u0248\70\0\1\u022b\137\0\1\u0114\162\0\1\u0114\52\0"+ - "\1\u0249\162\0\1\u024a\114\0\1\u01db\163\0\1\u01dc\37\0"+ - "\1\u024b\162\0\1\u024c\73\0\1\u0114\162\0\1\u0114\67\0"+ - "\1\u024d\162\0\1\u024e\76\0\1\u01dd\162\0\1\u01de\67\0"+ - "\1\u024f\162\0\1\u0250\65\0\1\u0114\162\0\1\u0114\107\0"+ - "\1\u0251\162\0\1\u0252\71\0\1\u0253\162\0\1\u0254\47\0"+ - "\1\u0255\162\0\1\u0256\71\0\1\u0257\162\0\1\u0258\110\0"+ - "\1\u0259\162\0\1\u025a\32\0\1\u025b\125\0\1\u025c\154\0"+ - "\1\u025d\162\0\1\u025e\74\0\1\u025f\162\0\1\u0260\56\0"+ - "\1\u022b\162\0\1\u022c\61\0\1\u0261\162\0\1\u0262\74\0"+ - "\1\u0263\162\0\1\u0264\100\0\1\u0265\162\0\1\u0266\75\0"+ - "\1\u0267\162\0\1\u0268\70\0\1\u0206\162\0\1\u0207\64\0"+ - "\1\u023b\162\0\1\u023c\103\0\1\u0269\125\0\1\u026a\101\0"+ - "\1\u026b\162\0\1\u026c\105\0\1\u023b\162\0\1\u023c\62\0"+ - "\1\u0114\162\0\1\u0114\70\0\1\u01db\162\0\1\u01dc\55\0"+ - "\1\u01f7\162\0\1\u01f8\114\0\1\u0114\162\0\1\u0114\62\0"+ - "\1\u026d\162\0\1\u026e\101\0\1\u0114\163\0\1\u0114\64\0"+ - "\1\u026f\162\0\1\u0270\54\0\1\u0259\162\0\1\u025a\23\0"; + "\16\14\1\u0193\14\14\11\0\1\14\1\0\2\14\13\0"+ + "\1\14\6\0\31\14\3\0\23\14\1\306\7\14\3\0"+ + "\1\u0194\4\0\1\u0194\14\0\1\u010e\1\u0139\1\0\1\u010e"+ + "\4\0\1\u0195\1\0\31\u0196\4\0\32\u0196\10\0\1\u0197"+ + "\172\0\1\u0198\34\0\1\u0199\62\0\1\u019a\34\0\1\u019b"+ + "\31\0\1\u019c\125\0\1\u019d\172\0\1\u019e\34\0\1\u019f"+ + "\23\0\1\u01a0\157\0\1\u01a1\130\0\1\u01a2\70\0\1\u01a3"+ + "\235\0\1\u01a4\63\0\1\u01a5\117\0\1\u01a6\65\0\1\u01a7"+ + "\162\0\1\u01a8\162\0\1\u01a9\75\0\1\u01aa\1\u01ab\117\0"+ + "\1\u01ac\142\0\1\u01ad\34\0\1\u01ae\45\0\1\u01af\34\0"+ + "\1\u01b0\131\0\1\u01b1\142\0\1\u01b2\20\0\1\u01b3\167\0"+ + "\1\u01b4\162\0\1\u01b5\55\0\1\u01b6\34\0\1\u01b7\34\0"+ + "\1\u0194\4\0\1\u0194\24\0\1\u0195\73\0\1\u0194\4\0"+ + "\1\u0194\14\0\1\u010e\1\u0139\1\0\1\u010e\4\0\1\u0195"+ + "\1\0\31\u01b8\4\0\32\u01b8\41\0\1\u01b9\144\0\1\u01ba"+ + "\162\0\1\u01bb\63\0\1\u01bc\162\0\1\u01bd\60\0\1\u01be"+ + "\130\0\1\u01bf\123\0\1\u01c0\162\0\1\u01c1\66\0\1\u01c2"+ + "\126\0\1\u01c3\34\0\1\u01c4\102\0\1\u01c5\34\0\1\u01c6"+ + "\55\0\1\u01c7\176\0\1\u011a\61\0\1\u01c8\34\0\1\u01c9"+ + "\104\0\1\u01ca\34\0\1\u01cb\45\0\1\u01cc\141\0\1\u01cd"+ + "\162\0\1\u01ce\53\0\1\u01cf\34\0\1\u01d0\70\0\1\u01d1"+ + "\34\0\1\u01d2\106\0\1\u01d3\34\0\1\u01d4\56\0\1\u01d5"+ + "\162\0\1\u01d6\105\0\1\u01d7\162\0\1\u01d8\20\0\1\u01d9"+ + "\215\0\1\u01da\66\0\1\u01db\10\0\1\u01dc\125\0\1\u01dd"+ + "\162\0\1\u01de\60\0\1\u01df\162\0\1\u01e0\31\0\1\u0194"+ + "\4\0\1\u0194\14\0\1\u010e\1\u0139\1\0\1\u010e\4\0"+ + "\1\u0195\1\0\31\u01e1\4\0\32\u01e1\37\0\1\u01e2\142\0"+ + "\1\u01e3\162\0\1\u01e4\71\0\1\u01e5\162\0\1\u01e6\65\0"+ + "\1\u01e7\34\0\1\u01e8\101\0\1\u01e9\34\0\1\u01ea\65\0"+ + "\1\u01e3\162\0\1\u01e4\53\0\1\u01eb\34\0\1\u01ec\77\0"+ + "\1\u01ed\162\0\1\u01ee\71\0\1\u01ef\162\0\1\u01f0\54\0"+ + "\1\u01f1\34\0\1\u01f2\72\0\1\u01f3\162\0\1\u01f4\101\0"+ + "\1\u01f5\162\0\1\u01f6\55\0\1\u01f7\34\0\1\u01f8\100\0"+ + "\1\u01d5\162\0\1\u01d6\75\0\1\u01f9\162\0\1\u01fa\74\0"+ + "\1\u01fb\162\0\1\u01fc\73\0\1\u01fd\162\0\1\u01fe\50\0"+ + "\1\u01ff\162\0\1\u0200\70\0\1\u0201\162\0\1\u0202\100\0"+ + "\1\u0203\62\0\1\u0204\172\0\1\u0205\34\0\1\u0206\56\0"+ + "\1\u0207\3\0\1\u01f3\30\0\1\u0208\3\0\1\u01f4\64\0"+ + "\1\u0209\162\0\1\u020a\74\0\1\u020b\162\0\1\u020c\24\0"+ + "\1\u0194\4\0\1\u0194\14\0\1\u010e\1\u0139\1\0\1\u010e"+ + "\4\0\1\u0195\1\0\31\u010e\4\0\32\u010e\60\0\1\u020d"+ + "\110\0\1\u020e\162\0\1\u020f\101\0\1\u011a\162\0\1\u011a"+ + "\63\0\1\u0210\162\0\1\u0211\66\0\1\u0212\162\0\1\u0213"+ + "\77\0\1\u0214\162\0\1\u0215\53\0\1\u0216\162\0\1\u0217"+ + "\74\0\1\u0218\162\0\1\u0219\111\0\1\u021a\162\0\1\u021b"+ + "\43\0\1\u021c\162\0\1\u021d\100\0\1\u021e\162\0\1\u021f"+ + "\104\0\1\u0220\162\0\1\u0221\47\0\1\u0164\162\0\1\u0165"+ + "\71\0\1\u0222\162\0\1\u0223\72\0\1\u0224\162\0\1\u0225"+ + "\103\0\1\u011a\162\0\1\u011a\71\0\1\u0226\162\0\1\u0227"+ + "\64\0\1\u0228\34\0\1\u0229\64\0\1\u022a\1\u022b\136\0"+ + "\1\u022c\162\0\1\u022d\55\0\1\u022e\162\0\1\u022f\102\0"+ + "\1\u0226\162\0\1\u0227\62\0\1\u0230\162\0\1\u0231\70\0"+ + "\1\u0232\133\0\1\u011a\162\0\1\u011a\45\0\1\u0233\162\0"+ + "\1\u0234\114\0\1\u0235\162\0\1\u0236\54\0\1\u0237\162\0"+ + "\1\u0238\74\0\1\u0239\162\0\1\u023a\104\0\1\u011a\163\0"+ + "\1\u011a\47\0\1\u023b\162\0\1\u023c\101\0\1\u023b\162\0"+ + "\1\u023c\47\0\1\u023d\162\0\1\u023e\73\0\1\u023f\162\0"+ + "\1\u0240\67\0\1\u0241\162\0\1\u0242\72\0\1\u01bc\162\0"+ + "\1\u01bd\107\0\1\u0243\162\0\1\u0244\70\0\1\u0245\162\0"+ + "\1\u0246\63\0\1\u0247\34\0\1\u0248\56\0\1\u0249\34\0"+ + "\1\u024a\111\0\1\u024b\162\0\1\u024c\47\0\1\u024d\162\0"+ + "\1\u024e\74\0\1\u024f\162\0\1\u0250\70\0\1\u0233\137\0"+ + "\1\u011a\162\0\1\u011a\52\0\1\u0251\162\0\1\u0252\114\0"+ + "\1\u01e3\163\0\1\u01e4\37\0\1\u0253\162\0\1\u0254\73\0"+ + "\1\u011a\162\0\1\u011a\67\0\1\u0255\162\0\1\u0256\76\0"+ + "\1\u01e5\162\0\1\u01e6\67\0\1\u0257\162\0\1\u0258\65\0"+ + "\1\u011a\162\0\1\u011a\107\0\1\u0259\162\0\1\u025a\71\0"+ + "\1\u025b\162\0\1\u025c\47\0\1\u025d\162\0\1\u025e\71\0"+ + "\1\u025f\162\0\1\u0260\110\0\1\u0261\162\0\1\u0262\32\0"+ + "\1\u0263\125\0\1\u0264\154\0\1\u0265\162\0\1\u0266\74\0"+ + "\1\u0267\162\0\1\u0268\56\0\1\u0233\162\0\1\u0234\61\0"+ + "\1\u0269\162\0\1\u026a\74\0\1\u026b\162\0\1\u026c\100\0"+ + "\1\u026d\162\0\1\u026e\75\0\1\u026f\162\0\1\u0270\70\0"+ + "\1\u020e\162\0\1\u020f\64\0\1\u0243\162\0\1\u0244\103\0"+ + "\1\u0271\125\0\1\u0272\101\0\1\u0273\162\0\1\u0274\105\0"+ + "\1\u0243\162\0\1\u0244\62\0\1\u011a\162\0\1\u011a\70\0"+ + "\1\u01e3\162\0\1\u01e4\55\0\1\u01ff\162\0\1\u0200\114\0"+ + "\1\u011a\162\0\1\u011a\62\0\1\u0275\162\0\1\u0276\101\0"+ + "\1\u011a\163\0\1\u011a\64\0\1\u0277\162\0\1\u0278\54\0"+ + "\1\u0261\162\0\1\u0262\23\0"; private static int [] zzUnpackTrans() { - int [] result = new int[49708]; + int [] result = new int[50396]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -650,15 +655,16 @@ public final class ScilabLexer extends ScilabLexerConstants { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\1\1\4\0\1\1\1\0\1\11\10\1\2\11"+ - "\36\1\3\11\2\1\3\11\23\1\2\11\4\1\1\11"+ + "\36\1\3\11\2\1\3\11\25\1\2\11\4\1\1\11"+ "\1\1\2\11\3\1\1\0\1\1\3\0\6\1\2\11"+ "\1\0\5\1\1\11\31\1\1\0\1\1\1\0\1\11"+ - "\44\0\1\11\1\0\2\1\3\0\35\1\1\0\1\1"+ - "\42\0\20\1\1\11\14\0\1\11\23\0\12\1\33\0"+ - "\5\1\33\0\2\1\33\0\2\1\1\0\1\11\343\0"; + "\46\0\1\11\1\0\2\1\3\0\35\1\1\0\1\1"+ + "\44\0\20\1\1\11\14\0\1\11\24\0\12\1\27\0"+ + "\1\1\4\0\5\1\33\0\2\1\33\0\2\1\1\0"+ + "\1\11\343\0"; private static int [] zzUnpackAttribute() { - int [] result = new int[624]; + int [] result = new int[632]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -753,27 +759,27 @@ public final class ScilabLexer extends ScilabLexerConstants { private MatchingBlockScanner matchBlock; static { - // For SciNotes colors in preferences - commands.add("cos"); - macros.add("sind"); + // For SciNotes colors in preferences + commands.add("cos"); + macros.add("sind"); } public ScilabLexer(ScilabDocument doc) { - this(doc, new MatchingBlockScanner(doc), true); + this(doc, new MatchingBlockScanner(doc), true); } public ScilabLexer(ScilabDocument doc, boolean update) { - this(doc, new MatchingBlockScanner(doc), update); + this(doc, new MatchingBlockScanner(doc), update); } public ScilabLexer(ScilabDocument doc, MatchingBlockScanner matchBlock, boolean update) { this.doc = doc; this.elem = doc.getDefaultRootElement(); this.infile = doc.getFunctionsInDoc(); - this.matchBlock = matchBlock; - if (update) { - update(); - } + this.matchBlock = matchBlock; + if (update) { + update(); + } } public static void update() { @@ -793,7 +799,7 @@ public final class ScilabLexer extends ScilabLexerConstants { if (macs != null) { macros.addAll(Arrays.asList(macs)); } - } + } } public void setRange(int p0, int p1) { @@ -804,12 +810,12 @@ public final class ScilabLexer extends ScilabLexerConstants { yyreset(new ScilabDocumentReader(doc, p0, p1)); int currentLine = elem.getElementIndex(start); if (currentLine != 0) { - ScilabDocument.ScilabLeafElement e = (ScilabDocument.ScilabLeafElement) elem.getElement(currentLine - 1); - if (e.isBrokenString()) { + ScilabDocument.ScilabLeafElement e = (ScilabDocument.ScilabLeafElement) elem.getElement(currentLine - 1); + if (e.isBrokenString()) { yybegin(QSTRING); - } else if (e.isBlockComment()) { - yybegin(BLOCKCOMMENT); - } + } else if (e.isBlockComment()) { + yybegin(BLOCKCOMMENT); + } } } @@ -824,23 +830,23 @@ public final class ScilabLexer extends ScilabLexerConstants { ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBrokenString(breakstring); breakstring = false; } else if (lastPos == end) { - ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBlockComment(yystate() == BLOCKCOMMENT); + ((ScilabDocument.ScilabLeafElement) elem.getElement(elem.getElementIndex(start))).setBlockComment(yystate() == BLOCKCOMMENT); } - return ret; + return ret; } public boolean isLineFinishedByBlockComment(int start, int end) { this.start = start; - this.end = end; - try { + this.end = end; + try { yyreset(new ScilabDocumentReader(doc, start, end)); - int tok = 0; - while (tok != ScilabLexerConstants.EOF) { - tok = yylex(); - } + int tok = 0; + while (tok != ScilabLexerConstants.EOF) { + tok = yylex(); + } } catch (Exception e) { } - - return yystate() == BLOCKCOMMENT; + + return yystate() == BLOCKCOMMENT; } public int getKeyword(int pos, boolean strict) { @@ -875,46 +881,46 @@ public final class ScilabLexer extends ScilabLexerConstants { } public static ScilabTokens getScilabTokens(String str) { - ScilabDocument doc = new ScilabDocument(false); - try { - doc.insertString(0, str, null); + ScilabDocument doc = new ScilabDocument(false); + try { + doc.insertString(0, str, null); } catch (BadLocationException e) { } - return getScilabTokens(doc); + return getScilabTokens(doc); } public static ScilabTokens getScilabTokens(ScilabDocument doc) { - ScilabLexer lexer = new ScilabLexer(doc); - lexer.yyreset(new ScilabDocumentReader(doc, 0, doc.getLength())); - ScilabTokens tokens = new ScilabTokens(); - int tok = -1; - try { - while (tok != ScilabLexerConstants.EOF) { + ScilabLexer lexer = new ScilabLexer(doc); + lexer.yyreset(new ScilabDocumentReader(doc, 0, doc.getLength())); + ScilabTokens tokens = new ScilabTokens(); + int tok = -1; + try { + while (tok != ScilabLexerConstants.EOF) { tok = lexer.yylex(); tokens.add(tok, lexer.yychar() + lexer.yylength()); } } catch (IOException e) { } - return tokens; + return tokens; } public static class ScilabTokens { private List tokenType = new ArrayList(); private List tokenPos = new ArrayList(); - ScilabTokens() { } + ScilabTokens() { } - void add(final int type, final int pos) { - tokenType.add(type); - tokenPos.add(pos); - } + void add(final int type, final int pos) { + tokenType.add(type); + tokenPos.add(pos); + } - public final List getTokenType() { - return tokenType; - } + public final List getTokenType() { + return tokenType; + } - public final List getTokenPos() { - return tokenPos; - } + public final List getTokenPos() { + return tokenPos; + } } @@ -1261,23 +1267,23 @@ public final class ScilabLexer extends ScilabLexerConstants { { return ScilabLexerConstants.STRING; } // fall through - case 44: break; + case 45: break; case 2: { transposable = false; return ScilabLexerConstants.DEFAULT; } // fall through - case 45: break; + case 46: break; case 3: { return ScilabLexerConstants.TAB; } // fall through - case 46: break; + case 47: break; case 4: { return ScilabLexerConstants.WHITE; } // fall through - case 47: break; + case 48: break; case 5: { transposable = true; String str = yytext(); @@ -1301,7 +1307,7 @@ public final class ScilabLexer extends ScilabLexerConstants { return ScilabLexerConstants.ID; } // fall through - case 48: break; + case 49: break; case 6: { transposable = false; beginString = zzStartRead; @@ -1309,19 +1315,19 @@ public final class ScilabLexer extends ScilabLexerConstants { return ScilabLexerConstants.STRING; } // fall through - case 49: break; + case 50: break; case 7: { transposable = false; return ScilabLexerConstants.SPECIAL; } // fall through - case 50: break; + case 51: break; case 8: { transposable = false; return ScilabLexerConstants.OPERATOR; } // fall through - case 51: break; + case 52: break; case 9: { if (transposable) { return ScilabLexerConstants.TRANSP; @@ -1332,141 +1338,141 @@ public final class ScilabLexer extends ScilabLexerConstants { } } // fall through - case 52: break; + case 53: break; case 10: { transposable = false; return ScilabLexerConstants.OPENCLOSE; } // fall through - case 53: break; + case 54: break; case 11: { transposable = true; return ScilabLexerConstants.OPENCLOSE; } // fall through - case 54: break; + case 55: break; case 12: { transposable = false; yybegin(FIELD); return ScilabLexerConstants.OPERATOR; } // fall through - case 55: break; + case 56: break; case 13: { transposable = true; return ScilabLexerConstants.NUMBER; } // fall through - case 56: break; + case 57: break; case 14: { return ScilabLexerConstants.TAB_STRING; } // fall through - case 57: break; + case 58: break; case 15: { return ScilabLexerConstants.DEFAULT; } // fall through - case 58: break; + case 59: break; case 16: { return ScilabLexerConstants.WHITE_STRING; } // fall through - case 59: break; + case 60: break; case 17: { transposable = false; yybegin(YYINITIAL); return ScilabLexerConstants.STRING; } // fall through - case 60: break; + case 61: break; case 18: { return ScilabLexerConstants.COMMENT; } // fall through - case 61: break; + case 62: break; case 19: { return ScilabLexerConstants.TAB_COMMENT; } // fall through - case 62: break; + case 63: break; case 20: { return ScilabLexerConstants.WHITE_COMMENT; } // fall through - case 63: break; + case 64: break; case 21: { yypushback(1); yybegin(YYINITIAL); } // fall through - case 64: break; + case 65: break; case 22: { } // fall through - case 65: break; + case 66: break; case 23: { transposable = true; return ScilabLexerConstants.FIELD; } // fall through - case 66: break; + case 67: break; case 24: { yybegin(COMMANDSWHITE); return ScilabLexerConstants.TAB; } // fall through - case 67: break; + case 68: break; case 25: { yybegin(COMMANDSWHITE); return ScilabLexerConstants.WHITE; } // fall through - case 68: break; + case 69: break; case 26: { yypushback(yylength()); yybegin(YYINITIAL); } // fall through - case 69: break; + case 70: break; case 27: { return ScilabLexerConstants.ERROR; } // fall through - case 70: break; + case 71: break; case 28: { transposable = true; return ScilabLexerConstants.CONSTANTES; } // fall through - case 71: break; + case 72: break; case 29: { transposable = false; yypushback(2); yybegin(BLOCKCOMMENT); } // fall through - case 72: break; + case 73: break; case 30: { transposable = false; yypushback(2); yybegin(COMMENT); } // fall through - case 73: break; + case 74: break; case 31: { transposable = false; return ScilabLexerConstants.SKEYWORD; } // fall through - case 74: break; + case 75: break; case 32: { transposable = false; return ScilabLexerConstants.OSKEYWORD; } // fall through - case 75: break; + case 76: break; case 33: { yypushback(yylength()); yybegin(BREAKSTRING); @@ -1474,24 +1480,24 @@ public final class ScilabLexer extends ScilabLexerConstants { return ScilabLexerConstants.STRING; } // fall through - case 76: break; + case 77: break; case 34: { return ScilabLexerConstants.LATEX; } // fall through - case 77: break; + case 78: break; case 35: { yybegin(YYINITIAL); - return ScilabLexerConstants.COMMENT; + return ScilabLexerConstants.COMMENT; } // fall through - case 78: break; + case 79: break; case 36: { breakstring = true; return ScilabLexerConstants.SPECIAL; } // fall through - case 79: break; + case 80: break; case 37: { transposable = false; if (matchBlock != null) { @@ -1508,40 +1514,45 @@ public final class ScilabLexer extends ScilabLexerConstants { return ScilabLexerConstants.OSKEYWORD; } // fall through - case 80: break; + case 81: break; case 38: { transposable = false; return ScilabLexerConstants.ELSEIF; } // fall through - case 81: break; + case 82: break; case 39: { transposable = false; return ScilabLexerConstants.CKEYWORD; } // fall through - case 82: break; + case 83: break; case 40: { return ScilabLexerConstants.AUTHORS; } // fall through - case 83: break; + case 84: break; case 41: - { return ScilabLexerConstants.URL; + { return ScilabLexerConstants.TODO; } // fall through - case 84: break; + case 85: break; case 42: + { return ScilabLexerConstants.URL; + } + // fall through + case 86: break; + case 43: { transposable = false; return ScilabLexerConstants.FKEYWORD; } // fall through - case 85: break; - case 43: + case 87: break; + case 44: { return ScilabLexerConstants.MAIL; } // fall through - case 86: break; + case 88: break; default: zzScanError(ZZ_NO_MATCH); } -- 1.7.9.5