mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-28 18:25:30 +00:00
Compile AS3 @identifier asdoc tag as identifier replacement
This commit is contained in:
@@ -51,6 +51,7 @@ import com.jpexs.decompiler.flash.treeitems.Openable;
|
||||
import com.jpexs.decompiler.graph.DottedChain;
|
||||
import com.jpexs.decompiler.graph.ScopeStack;
|
||||
import com.jpexs.decompiler.graph.model.CommentItem;
|
||||
import com.jpexs.decompiler.graph.model.DocCommentItem;
|
||||
import com.jpexs.decompiler.graph.model.LocalData;
|
||||
import com.jpexs.helpers.CancellableWorker;
|
||||
import com.jpexs.helpers.Helper;
|
||||
@@ -468,18 +469,17 @@ public class ScriptPack extends AS3ClassTreeItem {
|
||||
if (!usedDeobfuscations.isEmpty()) {
|
||||
writer.newLine();
|
||||
List<String> commentLines = new ArrayList<>();
|
||||
commentLines.add("@deobfuscated");
|
||||
Map<String, String> fullMap = abc.getSwf().getAs3ObfuscatedIdentifiers();
|
||||
int i = 0;
|
||||
for (String obfuscated : usedDeobfuscations) {
|
||||
String deobfuscated = fullMap.get(obfuscated);
|
||||
commentLines.add(deobfuscated + " = \"" + Helper.escapeActionScriptString(obfuscated) + "\"");
|
||||
commentLines.add("@identifier " + deobfuscated + " = \"" + Helper.escapePCodeString(obfuscated) + "\"");
|
||||
i++;
|
||||
}
|
||||
commentLines.sort(new NaturalOrderComparator());
|
||||
commentLines.add("");
|
||||
commentLines.add(0, "The original code has obfuscated identifiers. List of replacements follows:");
|
||||
String[] commentLinesArr = commentLines.toArray(new String[commentLines.size()]);
|
||||
new CommentItem(commentLinesArr).appendTo(writer, LocalData.empty);
|
||||
new DocCommentItem(commentLinesArr).appendTo(writer, LocalData.empty);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,9 @@ import com.jpexs.decompiler.flash.abc.types.Float4;
|
||||
import com.jpexs.decompiler.flash.abc.types.Namespace;
|
||||
import com.jpexs.decompiler.flash.abc.types.ScriptInfo;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionIf;
|
||||
import com.jpexs.decompiler.flash.asdoc.ActionScriptDocParser;
|
||||
import com.jpexs.decompiler.flash.asdoc.AsDocComment;
|
||||
import com.jpexs.decompiler.flash.asdoc.AsDocTag;
|
||||
import com.jpexs.decompiler.flash.tags.ABCContainerTag;
|
||||
import com.jpexs.decompiler.flash.tags.Tag;
|
||||
import com.jpexs.decompiler.graph.CompilationException;
|
||||
@@ -134,6 +137,7 @@ import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -486,6 +490,11 @@ public class ActionScript3Parser {
|
||||
throw new InterruptedException();
|
||||
}
|
||||
ParsedSymbol ret = lexer.lex();
|
||||
if (ret.type == SymbolType.IDENTIFIER) {
|
||||
if (replacements.containsKey(ret.value.toString())) {
|
||||
ret.value = replacements.get(ret.value.toString());
|
||||
}
|
||||
}
|
||||
if (debugMode) {
|
||||
System.out.println(ret);
|
||||
}
|
||||
@@ -1550,10 +1559,10 @@ public class ActionScript3Parser {
|
||||
List<GraphTargetItem> xmlParts = xmltag(allOpenedNamespaces, thisType, pkg, new Reference<>(false), openedTags, needsActivation, importedClasses, openedNamespaces, registerVars, inFunction, inMethod, variables, abc);
|
||||
lexer.setEnableWhiteSpace(true);
|
||||
lexer.begin(ActionScriptLexer.YYINITIAL);
|
||||
ParsedSymbol s = lexer.lex();
|
||||
ParsedSymbol s = lex();
|
||||
while (s.isType(SymbolType.XML_WHITESPACE)) {
|
||||
addS(xmlParts, new StringBuilder(s.value.toString()));
|
||||
s = lexer.lex();
|
||||
s = lex();
|
||||
}
|
||||
lexer.setEnableWhiteSpace(false);
|
||||
lexer.pushback(s);
|
||||
@@ -1646,7 +1655,7 @@ public class ActionScript3Parser {
|
||||
}
|
||||
break;*/
|
||||
case FUNCTION:
|
||||
s = lexer.lex();
|
||||
s = lex();
|
||||
expected(s, lexer.yyline(), SymbolGroup.IDENTIFIER);
|
||||
needsActivation.setVal(true);
|
||||
ret = (function(allOpenedNamespaces, new ArrayList<>(), pkg, false, false, needsActivation, importedClasses, thisType, openedNamespaces, s.value.toString(), false, variables, abc));
|
||||
@@ -2582,7 +2591,7 @@ public class ActionScript3Parser {
|
||||
|
||||
break;
|
||||
case FUNCTION:
|
||||
s = lexer.lex();
|
||||
s = lex();
|
||||
String fname = "";
|
||||
if (s.isType(SymbolGroup.IDENTIFIER)) {
|
||||
fname = s.value.toString();
|
||||
@@ -2674,7 +2683,7 @@ public class ActionScript3Parser {
|
||||
s = new ParsedSymbol(-1, SymbolGroup.OPERATOR, SymbolType.LOWER_THAN);
|
||||
}
|
||||
if (s.type == SymbolType.FUNCTION) {
|
||||
s = lexer.lex();
|
||||
s = lex();
|
||||
String ffname = "";
|
||||
if (s.isType(SymbolGroup.IDENTIFIER)) {
|
||||
ffname = s.value.toString();
|
||||
@@ -2743,6 +2752,8 @@ public class ActionScript3Parser {
|
||||
}
|
||||
|
||||
private ActionScriptLexer lexer = null;
|
||||
|
||||
private Map<String, String> replacements = new LinkedHashMap<>();
|
||||
|
||||
private List<String> constantPool;
|
||||
|
||||
@@ -2957,7 +2968,7 @@ public class ActionScript3Parser {
|
||||
lexer = new ActionScriptLexer(str);
|
||||
|
||||
List<GraphTargetItem> ret = parseScript(importedClasses, openedNamespaces, allOpenedNamespaces, scriptIndex, fileName, numberContextRef, abc, sinitNeedsActivation, sinitVariables);
|
||||
if (lexer.lex().type != SymbolType.EOF) {
|
||||
if (lex().type != SymbolType.EOF) {
|
||||
throw new AVM2ParseException("Parsing finished before end of the file", lexer.yyline());
|
||||
}
|
||||
return ret;
|
||||
@@ -3013,6 +3024,33 @@ public class ActionScript3Parser {
|
||||
* @throws InterruptedException On interrupt
|
||||
*/
|
||||
public void addScript(String s, String fileName, int classPos, int scriptIndex, String documentClass, ABC abc) throws AVM2ParseException, IOException, CompilationException, InterruptedException {
|
||||
|
||||
replacements.clear();
|
||||
ActionScriptDocParser asd = new ActionScriptDocParser();
|
||||
List<AsDocComment> comments = asd.parse(s);
|
||||
for (AsDocComment comment:comments) {
|
||||
for (AsDocTag tag : comment.tags) {
|
||||
if ("identifier".equals(tag.tagName)) {
|
||||
String tagText = tag.tagText;
|
||||
if (tagText != null && !tagText.isEmpty()) {
|
||||
ActionScriptLexer lexer = new ActionScriptLexer(tagText);
|
||||
ParsedSymbol symb = lexer.yylex();
|
||||
if (symb.type != SymbolType.IDENTIFIER) {
|
||||
throw new AVM2ParseException("Invalid @identifier AsDoc tag value. Identifier expected.", 0);
|
||||
}
|
||||
ParsedSymbol symb2 = lexer.yylex();
|
||||
if (symb2.type != SymbolType.ASSIGN) {
|
||||
throw new AVM2ParseException("Invalid @identifier AsDoc tag value. Assign expected.", 0);
|
||||
}
|
||||
ParsedSymbol symb3 = lexer.yylex();
|
||||
if (symb3.type != SymbolType.STRING) {
|
||||
throw new AVM2ParseException("Invalid @identifier AsDoc tag value. String expected.", 0);
|
||||
}
|
||||
replacements.put(symb.value.toString(), symb3.value.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
List<List<NamespaceItem>> allOpenedNamespaces = new ArrayList<>();
|
||||
Reference<Integer> numberContextRef = new Reference<>(null);
|
||||
Reference<Boolean> sinitNeedsActivation = new Reference<>(false);
|
||||
|
||||
@@ -268,19 +268,20 @@ public final class ActionScriptLexer {
|
||||
"\1\60\1\154\1\205\1\0\1\206\5\6\1\207\10\6"+
|
||||
"\1\210\1\6\1\211\2\6\1\212\1\213\5\6\1\214"+
|
||||
"\6\6\1\215\5\6\1\216\1\6\1\0\1\217\1\0"+
|
||||
"\1\220\1\221\2\0\1\222\1\0\1\223\1\0\1\6"+
|
||||
"\1\224\1\6\1\225\1\226\5\6\1\227\1\230\1\6"+
|
||||
"\1\231\2\6\1\232\1\6\1\233\10\6\1\234\5\6"+
|
||||
"\2\0\3\6\1\235\5\6\1\236\1\6\1\237\1\240"+
|
||||
"\1\241\1\6\1\242\1\6\1\243\3\6\1\244\4\6"+
|
||||
"\2\0\2\6\1\245\1\246\1\6\2\0\1\247\1\6"+
|
||||
"\1\250\5\6\1\251\1\6\1\252\1\6\2\0\1\6"+
|
||||
"\1\253\1\254\2\0\1\255\3\6\1\256\2\6\1\257"+
|
||||
"\1\0\1\260\1\261\4\0\1\262\1\6\1\263\1\6"+
|
||||
"\1\264\1\265\4\0\1\266\1\267\22\0\1\270\3\0";
|
||||
"\1\220\1\221\2\0\1\222\1\0\1\223\1\60\1\0"+
|
||||
"\1\6\1\224\1\6\1\225\1\226\5\6\1\227\1\230"+
|
||||
"\1\6\1\231\2\6\1\232\1\6\1\233\10\6\1\234"+
|
||||
"\5\6\2\0\3\6\1\235\5\6\1\236\1\6\1\237"+
|
||||
"\1\240\1\241\1\6\1\242\1\6\1\243\3\6\1\244"+
|
||||
"\4\6\2\0\2\6\1\245\1\246\1\6\2\0\1\247"+
|
||||
"\1\6\1\250\5\6\1\251\1\6\1\252\1\6\2\0"+
|
||||
"\1\6\1\253\1\254\2\0\1\255\3\6\1\256\2\6"+
|
||||
"\1\257\1\0\1\260\1\261\4\0\1\262\1\6\1\263"+
|
||||
"\1\6\1\264\1\265\4\0\1\266\1\267\22\0\1\270"+
|
||||
"\3\0";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[509];
|
||||
int [] result = new int[510];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -344,34 +345,34 @@ public final class ActionScriptLexer {
|
||||
"\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u0558\0\u0558\0\u3bac\0\u03dc"+
|
||||
"\0\u03dc\0\u3bf8\0\u3c44\0\u03dc\0\u03dc\0\u3c90\0\u03dc\0\u3cdc"+
|
||||
"\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u03dc\0\u03dc"+
|
||||
"\0\u3ef0\0\u3f3c\0\u2c3c\0\u3f88\0\u03dc\0\u3fd4\0\u03dc\0\u4020"+
|
||||
"\0\u3ef0\0\u3f3c\0\u2d6c\0\u3f88\0\u03dc\0\u3fd4\0\u03dc\0\u4020"+
|
||||
"\0\u406c\0\u40b8\0\u4104\0\u4150\0\u0558\0\u419c\0\u41e8\0\u4234"+
|
||||
"\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0\0\u0558\0\u43fc\0\u0558"+
|
||||
"\0\u4448\0\u4494\0\u0558\0\u0558\0\u44e0\0\u452c\0\u4578\0\u45c4"+
|
||||
"\0\u4610\0\u0558\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8"+
|
||||
"\0\u0558\0\u4824\0\u4870\0\u48bc\0\u4908\0\u4954\0\u0558\0\u49a0"+
|
||||
"\0\u28ac\0\u03dc\0\u49ec\0\u03dc\0\u03dc\0\u4a38\0\u2b0c\0\u03dc"+
|
||||
"\0\u4a84\0\u03dc\0\u4ad0\0\u4b1c\0\u0558\0\u4b68\0\u0558\0\u0558"+
|
||||
"\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u0558\0\u4d30\0\u4d7c"+
|
||||
"\0\u0558\0\u4dc8\0\u4e14\0\u0558\0\u4e60\0\u0558\0\u4eac\0\u4ef8"+
|
||||
"\0\u4f44\0\u4f90\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u0558\0\u510c"+
|
||||
"\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c"+
|
||||
"\0\u53b8\0\u0558\0\u5404\0\u5450\0\u549c\0\u54e8\0\u5534\0\u0558"+
|
||||
"\0\u5580\0\u0558\0\u0558\0\u0558\0\u55cc\0\u0558\0\u5618\0\u0558"+
|
||||
"\0\u5664\0\u56b0\0\u56fc\0\u0558\0\u5748\0\u5794\0\u57e0\0\u582c"+
|
||||
"\0\u5878\0\u58c4\0\u5910\0\u595c\0\u0558\0\u0558\0\u59a8\0\u59f4"+
|
||||
"\0\u5a40\0\u0558\0\u5a8c\0\u0558\0\u5ad8\0\u5b24\0\u5b70\0\u5bbc"+
|
||||
"\0\u5c08\0\u0558\0\u5c54\0\u0558\0\u5ca0\0\u5cec\0\u5d38\0\u5d84"+
|
||||
"\0\u0558\0\u0558\0\u5dd0\0\u5e1c\0\u0558\0\u5e68\0\u5eb4\0\u5f00"+
|
||||
"\0\u0558\0\u5f4c\0\u5f98\0\u0558\0\u5fe4\0\u03dc\0\u0558\0\u6030"+
|
||||
"\0\u607c\0\u60c8\0\u6114\0\u0558\0\u6160\0\u0558\0\u61ac\0\u0558"+
|
||||
"\0\u03dc\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u0558\0\u0558\0\u6328"+
|
||||
"\0\u6374\0\u63c0\0\u640c\0\u6458\0\u64a4\0\u64f0\0\u653c\0\u6588"+
|
||||
"\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c\0\u67e8"+
|
||||
"\0\u6834\0\u03dc\0\u6880\0\u68cc\0\u6918";
|
||||
"\0\u4a84\0\u03dc\0\u2c3c\0\u4ad0\0\u4b1c\0\u0558\0\u4b68\0\u0558"+
|
||||
"\0\u0558\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u0558\0\u4d30"+
|
||||
"\0\u4d7c\0\u0558\0\u4dc8\0\u4e14\0\u0558\0\u4e60\0\u0558\0\u4eac"+
|
||||
"\0\u4ef8\0\u4f44\0\u4f90\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u0558"+
|
||||
"\0\u510c\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320"+
|
||||
"\0\u536c\0\u53b8\0\u0558\0\u5404\0\u5450\0\u549c\0\u54e8\0\u5534"+
|
||||
"\0\u0558\0\u5580\0\u0558\0\u0558\0\u0558\0\u55cc\0\u0558\0\u5618"+
|
||||
"\0\u0558\0\u5664\0\u56b0\0\u56fc\0\u0558\0\u5748\0\u5794\0\u57e0"+
|
||||
"\0\u582c\0\u5878\0\u58c4\0\u5910\0\u595c\0\u0558\0\u0558\0\u59a8"+
|
||||
"\0\u59f4\0\u5a40\0\u0558\0\u5a8c\0\u0558\0\u5ad8\0\u5b24\0\u5b70"+
|
||||
"\0\u5bbc\0\u5c08\0\u0558\0\u5c54\0\u0558\0\u5ca0\0\u5cec\0\u5d38"+
|
||||
"\0\u5d84\0\u0558\0\u0558\0\u5dd0\0\u5e1c\0\u0558\0\u5e68\0\u5eb4"+
|
||||
"\0\u5f00\0\u0558\0\u5f4c\0\u5f98\0\u0558\0\u5fe4\0\u03dc\0\u0558"+
|
||||
"\0\u6030\0\u607c\0\u60c8\0\u6114\0\u0558\0\u6160\0\u0558\0\u61ac"+
|
||||
"\0\u0558\0\u03dc\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u0558\0\u0558"+
|
||||
"\0\u6328\0\u6374\0\u63c0\0\u640c\0\u6458\0\u64a4\0\u64f0\0\u653c"+
|
||||
"\0\u6588\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c"+
|
||||
"\0\u67e8\0\u6834\0\u03dc\0\u6880\0\u68cc\0\u6918";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[509];
|
||||
int [] result = new int[510];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -598,324 +599,324 @@ public final class ActionScriptLexer {
|
||||
"\1\343\5\0\14\343\14\0\1\345\111\0\1\346\2\347"+
|
||||
"\1\346\1\350\1\u0139\54\346\1\352\31\346\5\347\1\u013a"+
|
||||
"\113\347\1\u013a\13\347\1\350\15\347\2\350\1\347\1\350"+
|
||||
"\1\347\7\350\5\347\1\350\5\347\14\350\12\347\1\146"+
|
||||
"\2\0\1\146\1\u013b\1\351\54\146\1\152\31\146\1\346"+
|
||||
"\2\347\1\346\1\u013c\1\u0139\54\346\1\352\31\346\1\146"+
|
||||
"\2\0\1\146\1\343\14\146\1\353\15\146\2\353\1\146"+
|
||||
"\1\353\1\146\7\353\5\146\1\353\1\146\1\152\3\146"+
|
||||
"\14\353\12\146\15\0\1\u013d\124\0\1\u013e\120\0\1\u013f"+
|
||||
"\102\0\1\364\13\0\1\364\4\0\1\364\7\0\1\364"+
|
||||
"\62\0\1\364\13\0\1\364\4\0\1\364\2\174\1\175"+
|
||||
"\4\0\1\364\46\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u0140\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\3\24\1\u0141\11\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\14\24\1\u0142\1\24\3\0"+
|
||||
"\2\24\5\0\3\24\1\u0143\11\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\4\24\1\u0144\11\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u0145\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\13\24"+
|
||||
"\1\u0146\2\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\1\24"+
|
||||
"\1\u0147\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\13\24\1\u0148\2\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\4\24\1\u0149\11\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\13\24\1\u014a"+
|
||||
"\1\347\7\350\5\347\1\350\5\347\14\350\12\347\1\346"+
|
||||
"\2\347\1\346\1\u013b\1\u0139\54\346\1\352\32\346\2\347"+
|
||||
"\1\346\1\u013c\1\u0139\54\346\1\352\31\346\1\146\2\0"+
|
||||
"\1\146\1\343\14\146\1\353\15\146\2\353\1\146\1\353"+
|
||||
"\1\146\7\353\5\146\1\353\1\146\1\152\3\146\14\353"+
|
||||
"\12\146\15\0\1\u013d\124\0\1\u013e\120\0\1\u013f\102\0"+
|
||||
"\1\364\13\0\1\364\4\0\1\364\7\0\1\364\62\0"+
|
||||
"\1\364\13\0\1\364\4\0\1\364\2\174\1\175\4\0"+
|
||||
"\1\364\46\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u0140\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\3\24\1\u0141\11\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\14\24\1\u0142\1\24\3\0\2\24"+
|
||||
"\5\0\3\24\1\u0143\11\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\4\24\1\u0144\11\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u0145\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\13\24\1\u0146"+
|
||||
"\2\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\3\24\1\u014b\11\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\13\24\1\u014c\2\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\1\24\1\u014d\13\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u014e\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\12\24\1\u014f\3\24\3\0\2\24"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\1\24\1\u0147"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\3\24\1\u0150\11\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u0151\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\1\24\1\u0152"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u0153\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\7\24\1\u0154\5\24\17\0\3\u010e\7\0"+
|
||||
"\3\u010e\3\0\4\u010e\4\0\16\u010e\3\0\2\u010e\5\0"+
|
||||
"\15\u010e\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\13\24\1\u0155\2\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\1\24\1\u0156"+
|
||||
"\14\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\1\24\1\u0157"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\14\24\1\u0158\1\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\14\24"+
|
||||
"\1\u0159\1\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\11\24\1\u015a\4\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u015b\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\5\24\1\u015c\7\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\11\24\1\u015d"+
|
||||
"\1\u015e\3\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\1\24"+
|
||||
"\1\u015f\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\14\24\1\u0160\1\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\7\24\1\u0161\5\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\11\24\1\u0162"+
|
||||
"\4\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\11\24\1\u0163\4\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\2\24\1\u0164"+
|
||||
"\12\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\14\24\1\u0165\1\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\12\24\1\u0166\2\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\7\24\1\u0167\6\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\5\24\1\u0168"+
|
||||
"\7\24\31\0\1\u0169\1\0\1\u0169\3\0\3\u0169\5\0"+
|
||||
"\1\u0169\3\0\2\u0169\1\0\2\u0169\2\0\1\u0169\1\0"+
|
||||
"\1\u0169\3\0\2\u0169\5\0\1\u0169\45\0\1\u016a\1\0"+
|
||||
"\1\u016a\3\0\3\u016a\5\0\1\u016a\3\0\2\u016a\1\0"+
|
||||
"\2\u016a\2\0\1\u016a\1\0\1\u016a\3\0\2\u016a\5\0"+
|
||||
"\1\u016a\26\0\2\u016b\5\0\2\u012e\1\0\1\u016b\1\0"+
|
||||
"\1\u012e\1\u016c\5\u012e\2\0\4\u012e\4\0\16\u012e\3\0"+
|
||||
"\2\u012e\5\0\15\u012e\26\0\1\u016d\124\0\1\u016e\75\0"+
|
||||
"\2\u0132\3\0\1\u0132\1\0\5\u0132\2\0\4\u0132\4\0"+
|
||||
"\16\u0132\3\0\2\u0132\5\0\15\u0132\31\0\1\u016f\1\0"+
|
||||
"\1\u016f\3\0\3\u016f\5\0\1\u016f\3\0\2\u016f\1\0"+
|
||||
"\2\u016f\2\0\1\u016f\1\0\1\u016f\3\0\2\u016f\5\0"+
|
||||
"\1\u016f\45\0\1\u0170\1\0\1\u0170\3\0\3\u0170\5\0"+
|
||||
"\1\u0170\3\0\2\u0170\1\0\2\u0170\2\0\1\u0170\1\0"+
|
||||
"\1\u0170\3\0\2\u0170\5\0\1\u0170\47\0\1\u0135\13\0"+
|
||||
"\1\u0135\1\u0171\3\0\1\u0135\7\0\1\u0135\17\0\1\u0171"+
|
||||
"\10\0\1\u0172\46\0\1\u0171\33\0\1\u0171\10\0\1\u0172"+
|
||||
"\7\0\1\346\2\347\1\346\1\u013b\1\u0139\54\346\1\352"+
|
||||
"\31\346\4\347\1\345\1\u013a\106\347\1\346\2\347\1\346"+
|
||||
"\1\350\1\u0139\13\346\1\u013c\15\346\2\u013c\1\346\1\u013c"+
|
||||
"\1\346\7\u013c\5\346\1\u013c\1\346\1\352\3\346\14\u013c"+
|
||||
"\12\346\27\0\1\u0173\72\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\10\24\1\u0174\5\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\3\24\1\u0175\11\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\5\24\1\u0176\7\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\14\24\1\u0177\1\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\7\24\1\u0178"+
|
||||
"\5\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\1\24\1\u0179\14\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\14\24\1\u017a"+
|
||||
"\1\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\6\24\1\u017b\7\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\14\24\1\u017c\1\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\14\24\1\u017d\1\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u017e\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\11\24\1\u017f\4\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\1\24\1\u0180\13\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\6\24\1\u0181\6\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\12\24\1\u0182\3\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\4\24"+
|
||||
"\1\u0183\10\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\2\24\1\u0184\12\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\1\24\1\u0185\13\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\1\24\1\u0186\13\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\5\24"+
|
||||
"\1\u0187\7\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\4\24\1\u0188\11\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\3\24\1\u0189\11\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\12\24\1\u018a\2\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u018b\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\1\24\1\u018c\13\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\1\24\1\u018d\13\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\13\24\1\u018e\2\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u018f\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\5\24\1\u0190\7\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\13\24\1\u0191\2\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u0192\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\13\24\1\u0193\2\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\4\24\1\u0194\10\24\12\0\2\u016b\10\0"+
|
||||
"\1\u016b\2\0\1\u016c\124\0\1\u0195\170\0\1\u0172\37\0"+
|
||||
"\1\u0196\71\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\5\24\1\u0197\7\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\4\24\1\u0198\10\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\11\24\1\u0199\4\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u019a\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\5\24\1\u019b\7\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\5\24\1\u019c\7\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\15\24\1\u019d\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\11\24\1\u019e\4\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\5\24\1\u019f\7\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\10\24\1\u01a0\5\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\7\24\1\u01a1\6\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\4\24\1\u01a2\10\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\4\24\1\u01a3"+
|
||||
"\11\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\7\24\1\u01a4\5\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\10\24\1\u01a5"+
|
||||
"\4\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u01a6\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\6\24\1\u01a7\7\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\14\24\1\u01a8\1\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\10\24\1\u01a9\5\24\3\0\2\24\5\0\4\24"+
|
||||
"\1\u01aa\10\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\4\24\1\u01ab\10\24"+
|
||||
"\4\0\13\24\1\u0148\2\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\4\24"+
|
||||
"\1\u01ac\11\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\13\24\1\u01ad\1\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\4\24\1\u01ae\11\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\14\24\1\u01af\1\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\5\24\1\u01b0\7\24\41\0\1\u01b1"+
|
||||
"\114\0\1\u01b2\70\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\4\24\1\u01b3\10\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\1\24"+
|
||||
"\1\u01b4\14\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\14\24\1\u01b5\1\24"+
|
||||
"\1\u0149\11\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\13\24\1\u014a\2\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\4\24\1\u01b6\11\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\12\24\1\u01b7\3\24\3\0\2\24\5\0\15\24"+
|
||||
"\12\0\3\u01b8\2\0\3\24\2\0\1\u01b8\4\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\1\u01b9\2\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\11\24\1\u01ba\3\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\7\24\1\u01bb"+
|
||||
"\6\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\3\24\1\u01bc\11\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\13\24\1\u01bd\2\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u01be\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\13\24\1\u01bf\2\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\13\24\1\u01c0\2\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\4\24\1\u01c1\11\24\3\0\2\24\5\0\15\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\3\24"+
|
||||
"\1\u014b\11\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\13\24\1\u014c\2\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u01c2\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\14\24\1\u01c3\1\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u01c4\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\14\24"+
|
||||
"\1\u01c5\1\24\3\0\2\24\5\0\15\24\42\0\1\u01c6"+
|
||||
"\112\0\1\u01c7\71\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u01c8\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u01c9\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\4\24"+
|
||||
"\1\u01ca\10\24\12\0\3\u01b8\7\0\1\u01b8\40\0\1\u01b9"+
|
||||
"\40\0\3\u01b9\5\0\1\u01cb\1\0\1\u01b9\6\0\1\u01cc"+
|
||||
"\13\0\1\u01cc\4\0\1\u01cc\7\0\1\u01cc\46\0\3\24"+
|
||||
"\3\0\2\24\5\0\1\24\1\u014d\13\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\1\24"+
|
||||
"\1\u01cd\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\4\24\1\u01ce\11\24\3\0\2\24\5\0"+
|
||||
"\1\u014e\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\12\24\1\u014f\3\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\4\24\1\u01cf\10\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\4\24\1\u01d0"+
|
||||
"\11\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\11\24\1\u01d1\4\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u01d2\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u01d3\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\11\24\1\u01d4\3\24\41\0\1\u01d5\110\0\1\u01d6\74\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\7\24\1\u01d7"+
|
||||
"\6\24\3\0\2\24\5\0\15\24\33\0\1\u01d8\13\0"+
|
||||
"\1\u01d8\4\0\1\u01d8\7\0\1\u01d8\41\0\3\u01d9\5\0"+
|
||||
"\1\u01d8\1\0\1\u01d9\6\0\1\u01cc\13\0\1\u01cc\4\0"+
|
||||
"\1\u01cc\2\0\1\u01d9\4\0\1\u01cc\1\0\1\u01da\1\0"+
|
||||
"\2\u01db\41\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u01dc\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\14\24\1\u01dd\1\24"+
|
||||
"\16\24\3\0\2\24\5\0\3\24\1\u0150\11\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u0151\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u0152\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u0153\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\7\24\1\u0154\5\24\17\0\3\u010e\7\0\3\u010e"+
|
||||
"\3\0\4\u010e\4\0\16\u010e\3\0\2\u010e\5\0\15\u010e"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\13\24"+
|
||||
"\1\u0155\2\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\1\24\1\u0156\14\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u01de\5\0"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\1\24\1\u0157\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\12\24\1\u01df\3\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\7\24\1\u01e0"+
|
||||
"\6\24\3\0\2\24\5\0\15\24\36\0\1\u01e1\67\0"+
|
||||
"\3\u01d9\7\0\1\u01d9\6\0\1\u01d8\13\0\1\u01d8\4\0"+
|
||||
"\1\u01d8\2\0\1\u01d9\4\0\1\u01d8\1\0\1\u01da\1\0"+
|
||||
"\2\u01db\34\0\3\u01d9\7\0\1\u01d9\41\0\1\u01da\37\0"+
|
||||
"\3\u01da\5\0\1\u01e2\1\0\1\u01da\6\0\1\u01e3\13\0"+
|
||||
"\1\u01e3\4\0\1\u01e3\7\0\1\u01e3\55\0\1\u01e4\4\0"+
|
||||
"\1\u01e5\13\0\1\u01e5\4\0\1\u01e5\7\0\1\u01e5\5\0"+
|
||||
"\1\u01e4\40\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\3\24\1\u01e6\11\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\10\24\1\u01e7"+
|
||||
"\5\24\3\0\2\24\5\0\15\24\33\0\1\u01e8\13\0"+
|
||||
"\1\u01e8\4\0\1\u01e8\7\0\1\u01e8\41\0\3\u01e9\5\0"+
|
||||
"\1\u01e8\1\0\1\u01e9\6\0\1\u01e3\13\0\1\u01e3\4\0"+
|
||||
"\1\u01e3\2\0\1\u01e9\4\0\1\u01e3\1\0\1\u01ea\1\0"+
|
||||
"\2\u01eb\55\0\1\u01e5\13\0\1\u01e5\4\0\1\u01e5\7\0"+
|
||||
"\1\u01e5\41\0\3\u01d9\7\0\1\u01d9\6\0\1\u01e5\13\0"+
|
||||
"\1\u01e5\4\0\1\u01e5\2\0\1\u01d9\4\0\1\u01e5\1\0"+
|
||||
"\1\u01da\37\0\3\u01e9\7\0\1\u01e9\6\0\1\u01e8\13\0"+
|
||||
"\1\u01e8\4\0\1\u01e8\2\0\1\u01e9\4\0\1\u01e8\1\0"+
|
||||
"\1\u01ea\1\0\2\u01eb\34\0\3\u01e9\7\0\1\u01e9\41\0"+
|
||||
"\1\u01ea\37\0\3\u01ea\5\0\1\u01ec\1\0\1\u01ea\6\0"+
|
||||
"\1\u01ed\13\0\1\u01ed\4\0\1\u01ed\7\0\1\u01ed\55\0"+
|
||||
"\1\u01ee\4\0\1\u01ef\13\0\1\u01ef\4\0\1\u01ef\7\0"+
|
||||
"\1\u01ef\5\0\1\u01ee\54\0\1\u01f0\13\0\1\u01f0\4\0"+
|
||||
"\1\u01f0\7\0\1\u01f0\41\0\3\u01f1\5\0\1\u01f0\1\0"+
|
||||
"\1\u01f1\6\0\1\u01ed\13\0\1\u01ed\4\0\1\u01ed\2\0"+
|
||||
"\1\u01f1\4\0\1\u01ed\1\0\1\u01f2\1\0\2\u01f3\55\0"+
|
||||
"\1\u01ef\13\0\1\u01ef\4\0\1\u01ef\7\0\1\u01ef\41\0"+
|
||||
"\3\u01e9\7\0\1\u01e9\6\0\1\u01ef\13\0\1\u01ef\4\0"+
|
||||
"\1\u01ef\2\0\1\u01e9\4\0\1\u01ef\1\0\1\u01ea\37\0"+
|
||||
"\3\u01f1\7\0\1\u01f1\6\0\1\u01f0\13\0\1\u01f0\4\0"+
|
||||
"\1\u01f0\2\0\1\u01f1\4\0\1\u01f0\1\0\1\u01f2\1\0"+
|
||||
"\2\u01f3\34\0\3\u01f1\7\0\1\u01f1\41\0\1\u01f2\37\0"+
|
||||
"\3\u01f2\5\0\1\u01f4\1\0\1\u01f2\6\0\1\u01f5\13\0"+
|
||||
"\1\u01f5\4\0\1\u01f5\7\0\1\u01f5\55\0\1\u01f6\4\0"+
|
||||
"\1\u01f7\13\0\1\u01f7\4\0\1\u01f7\7\0\1\u01f7\5\0"+
|
||||
"\1\u01f6\54\0\1\u01f8\13\0\1\u01f8\4\0\1\u01f8\7\0"+
|
||||
"\1\u01f8\41\0\3\u01f9\5\0\1\u01f8\1\0\1\u01f9\6\0"+
|
||||
"\1\u01f5\13\0\1\u01f5\4\0\1\u01f5\2\0\1\u01f9\4\0"+
|
||||
"\1\u01f5\2\0\1\u01fa\2\u01fb\55\0\1\u01f7\13\0\1\u01f7"+
|
||||
"\4\0\1\u01f7\7\0\1\u01f7\41\0\3\u01f1\7\0\1\u01f1"+
|
||||
"\6\0\1\u01f7\13\0\1\u01f7\4\0\1\u01f7\2\0\1\u01f1"+
|
||||
"\4\0\1\u01f7\1\0\1\u01f2\37\0\3\u01f9\7\0\1\u01f9"+
|
||||
"\6\0\1\u01f8\13\0\1\u01f8\4\0\1\u01f8\2\0\1\u01f9"+
|
||||
"\4\0\1\u01f8\2\0\1\u01fa\2\u01fb\34\0\3\u01f9\7\0"+
|
||||
"\1\u01f9\42\0\1\u01fa\52\0\1\u01fc\4\0\1\u01fd\13\0"+
|
||||
"\1\u01fd\4\0\1\u01fd\7\0\1\u01fd\5\0\1\u01fc\54\0"+
|
||||
"\1\u01fd\13\0\1\u01fd\4\0\1\u01fd\7\0\1\u01fd\41\0"+
|
||||
"\3\u01f9\7\0\1\u01f9\6\0\1\u01fd\13\0\1\u01fd\4\0"+
|
||||
"\1\u01fd\2\0\1\u01f9\4\0\1\u01fd\2\0\1\u01fa\35\0";
|
||||
"\14\24\1\u0158\1\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\14\24\1\u0159"+
|
||||
"\1\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\11\24\1\u015a\4\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u015b\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\5\24\1\u015c\7\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\11\24\1\u015d\1\u015e"+
|
||||
"\3\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\1\24\1\u015f"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\14\24\1\u0160\1\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\7\24\1\u0161\5\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\11\24\1\u0162\4\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\11\24\1\u0163\4\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\2\24\1\u0164\12\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\14\24"+
|
||||
"\1\u0165\1\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\12\24\1\u0166\2\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\7\24\1\u0167\6\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\5\24\1\u0168\7\24"+
|
||||
"\31\0\1\u0169\1\0\1\u0169\3\0\3\u0169\5\0\1\u0169"+
|
||||
"\3\0\2\u0169\1\0\2\u0169\2\0\1\u0169\1\0\1\u0169"+
|
||||
"\3\0\2\u0169\5\0\1\u0169\45\0\1\u016a\1\0\1\u016a"+
|
||||
"\3\0\3\u016a\5\0\1\u016a\3\0\2\u016a\1\0\2\u016a"+
|
||||
"\2\0\1\u016a\1\0\1\u016a\3\0\2\u016a\5\0\1\u016a"+
|
||||
"\26\0\2\u016b\5\0\2\u012e\1\0\1\u016b\1\0\1\u012e"+
|
||||
"\1\u016c\5\u012e\2\0\4\u012e\4\0\16\u012e\3\0\2\u012e"+
|
||||
"\5\0\15\u012e\26\0\1\u016d\124\0\1\u016e\75\0\2\u0132"+
|
||||
"\3\0\1\u0132\1\0\5\u0132\2\0\4\u0132\4\0\16\u0132"+
|
||||
"\3\0\2\u0132\5\0\15\u0132\31\0\1\u016f\1\0\1\u016f"+
|
||||
"\3\0\3\u016f\5\0\1\u016f\3\0\2\u016f\1\0\2\u016f"+
|
||||
"\2\0\1\u016f\1\0\1\u016f\3\0\2\u016f\5\0\1\u016f"+
|
||||
"\45\0\1\u0170\1\0\1\u0170\3\0\3\u0170\5\0\1\u0170"+
|
||||
"\3\0\2\u0170\1\0\2\u0170\2\0\1\u0170\1\0\1\u0170"+
|
||||
"\3\0\2\u0170\5\0\1\u0170\47\0\1\u0135\13\0\1\u0135"+
|
||||
"\1\u0171\3\0\1\u0135\7\0\1\u0135\17\0\1\u0171\10\0"+
|
||||
"\1\u0172\46\0\1\u0171\33\0\1\u0171\10\0\1\u0172\7\0"+
|
||||
"\1\346\2\347\1\346\1\u0173\1\u0139\54\346\1\352\31\346"+
|
||||
"\4\347\1\345\1\u013a\106\347\1\346\2\347\1\346\1\350"+
|
||||
"\1\u0139\13\346\1\u013c\15\346\2\u013c\1\346\1\u013c\1\346"+
|
||||
"\7\u013c\5\346\1\u013c\1\346\1\352\3\346\14\u013c\12\346"+
|
||||
"\27\0\1\u0174\72\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\10\24\1\u0175\5\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\3\24\1\u0176\11\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\5\24\1\u0177\7\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\14\24\1\u0178\1\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\7\24\1\u0179\5\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\1\24"+
|
||||
"\1\u017a\14\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\14\24\1\u017b\1\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\6\24\1\u017c\7\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\14\24\1\u017d\1\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\14\24"+
|
||||
"\1\u017e\1\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\1\24"+
|
||||
"\1\u017f\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\11\24\1\u0180\4\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\1\24\1\u0181\13\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\6\24\1\u0182\6\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\12\24\1\u0183\3\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\4\24\1\u0184"+
|
||||
"\10\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\2\24\1\u0185\12\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\1\24\1\u0186\13\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\1\24\1\u0187\13\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\5\24\1\u0188"+
|
||||
"\7\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\4\24\1\u0189\11\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\3\24\1\u018a\11\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\12\24\1\u018b\2\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u018c\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\1\24\1\u018d\13\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\1\24\1\u018e\13\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\13\24\1\u018f\2\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u0190\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\5\24\1\u0191\7\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\13\24\1\u0192\2\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u0193\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\13\24"+
|
||||
"\1\u0194\2\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\4\24\1\u0195\10\24\12\0\2\u016b\10\0\1\u016b"+
|
||||
"\2\0\1\u016c\124\0\1\u0196\170\0\1\u0172\37\0\1\u0197"+
|
||||
"\71\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\5\24\1\u0198\7\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\4\24\1\u0199\10\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\11\24\1\u019a\4\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u019b\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\5\24\1\u019c\7\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\5\24\1\u019d\7\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\15\24\1\u019e\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\11\24"+
|
||||
"\1\u019f\4\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\2\24"+
|
||||
"\5\0\5\24\1\u01a0\7\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\10\24\1\u01a1\5\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\7\24\1\u01a2\6\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\4\24\1\u01a3\10\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\4\24\1\u01a4\11\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\7\24"+
|
||||
"\1\u01a5\5\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\2\24\5\0\10\24\1\u01a6\4\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u01a7\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\6\24\1\u01a8\7\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\14\24\1\u01a9\1\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\10\24\1\u01aa\5\24\3\0\2\24\5\0\4\24\1\u01ab"+
|
||||
"\10\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\4\24\1\u01ac\10\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\4\24\1\u01ad"+
|
||||
"\11\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\2\24\5\0"+
|
||||
"\13\24\1\u01ae\1\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\4\24\1\u01af\11\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\14\24\1\u01b0\1\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\2\24\5\0\5\24\1\u01b1\7\24\41\0\1\u01b2\114\0"+
|
||||
"\1\u01b3\70\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\2\24\5\0\4\24\1\u01b4\10\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\1\24\1\u01b5"+
|
||||
"\14\24\3\0\2\24\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\14\24\1\u01b6\1\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\4\24\1\u01b7\11\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\12\24\1\u01b8\3\24\3\0\2\24\5\0\15\24\12\0"+
|
||||
"\3\u01b9\2\0\3\24\2\0\1\u01b9\4\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\1\u01ba\2\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\11\24\1\u01bb\3\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\7\24\1\u01bc\6\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\3\24"+
|
||||
"\1\u01bd\11\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\13\24\1\u01be\2\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u01bf\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\13\24\1\u01c0\2\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\13\24\1\u01c1\2\24\3\0\2\24\5\0"+
|
||||
"\15\24\17\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\4\24\1\u01c2\11\24\3\0\2\24\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u01c3\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\14\24\1\u01c4\1\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u01c5\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\14\24\1\u01c6"+
|
||||
"\1\24\3\0\2\24\5\0\15\24\42\0\1\u01c7\112\0"+
|
||||
"\1\u01c8\71\0\3\24\7\0\3\24\3\0\4\24\4\0"+
|
||||
"\16\24\3\0\1\24\1\u01c9\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\16\24\3\0\1\24"+
|
||||
"\1\u01ca\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\2\24\5\0\4\24\1\u01cb"+
|
||||
"\10\24\12\0\3\u01b9\7\0\1\u01b9\40\0\1\u01ba\40\0"+
|
||||
"\3\u01ba\5\0\1\u01cc\1\0\1\u01ba\6\0\1\u01cd\13\0"+
|
||||
"\1\u01cd\4\0\1\u01cd\7\0\1\u01cd\46\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\16\24\3\0\1\24\1\u01ce"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\4\24\1\u01cf\11\24\3\0\2\24\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\4\24\1\u01d0\10\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\4\24\1\u01d1\11\24"+
|
||||
"\3\0\2\24\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\11\24\1\u01d2\4\24\3\0\2\24"+
|
||||
"\5\0\15\24\17\0\3\24\7\0\3\24\3\0\4\24"+
|
||||
"\4\0\16\24\3\0\1\24\1\u01d3\5\0\15\24\17\0"+
|
||||
"\3\24\7\0\3\24\3\0\4\24\4\0\16\24\3\0"+
|
||||
"\1\24\1\u01d4\5\0\15\24\17\0\3\24\7\0\3\24"+
|
||||
"\3\0\4\24\4\0\16\24\3\0\2\24\5\0\11\24"+
|
||||
"\1\u01d5\3\24\41\0\1\u01d6\110\0\1\u01d7\74\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\7\24\1\u01d8\6\24"+
|
||||
"\3\0\2\24\5\0\15\24\33\0\1\u01d9\13\0\1\u01d9"+
|
||||
"\4\0\1\u01d9\7\0\1\u01d9\41\0\3\u01da\5\0\1\u01d9"+
|
||||
"\1\0\1\u01da\6\0\1\u01cd\13\0\1\u01cd\4\0\1\u01cd"+
|
||||
"\2\0\1\u01da\4\0\1\u01cd\1\0\1\u01db\1\0\2\u01dc"+
|
||||
"\41\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\1\24\1\u01dd\5\0\15\24\17\0\3\24\7\0"+
|
||||
"\3\24\3\0\4\24\4\0\14\24\1\u01de\1\24\3\0"+
|
||||
"\2\24\5\0\15\24\17\0\3\24\7\0\3\24\3\0"+
|
||||
"\4\24\4\0\16\24\3\0\1\24\1\u01df\5\0\15\24"+
|
||||
"\17\0\3\24\7\0\3\24\3\0\4\24\4\0\12\24"+
|
||||
"\1\u01e0\3\24\3\0\2\24\5\0\15\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\7\24\1\u01e1\6\24"+
|
||||
"\3\0\2\24\5\0\15\24\36\0\1\u01e2\67\0\3\u01da"+
|
||||
"\7\0\1\u01da\6\0\1\u01d9\13\0\1\u01d9\4\0\1\u01d9"+
|
||||
"\2\0\1\u01da\4\0\1\u01d9\1\0\1\u01db\1\0\2\u01dc"+
|
||||
"\34\0\3\u01da\7\0\1\u01da\41\0\1\u01db\37\0\3\u01db"+
|
||||
"\5\0\1\u01e3\1\0\1\u01db\6\0\1\u01e4\13\0\1\u01e4"+
|
||||
"\4\0\1\u01e4\7\0\1\u01e4\55\0\1\u01e5\4\0\1\u01e6"+
|
||||
"\13\0\1\u01e6\4\0\1\u01e6\7\0\1\u01e6\5\0\1\u01e5"+
|
||||
"\40\0\3\24\7\0\3\24\3\0\4\24\4\0\16\24"+
|
||||
"\3\0\2\24\5\0\3\24\1\u01e7\11\24\17\0\3\24"+
|
||||
"\7\0\3\24\3\0\4\24\4\0\10\24\1\u01e8\5\24"+
|
||||
"\3\0\2\24\5\0\15\24\33\0\1\u01e9\13\0\1\u01e9"+
|
||||
"\4\0\1\u01e9\7\0\1\u01e9\41\0\3\u01ea\5\0\1\u01e9"+
|
||||
"\1\0\1\u01ea\6\0\1\u01e4\13\0\1\u01e4\4\0\1\u01e4"+
|
||||
"\2\0\1\u01ea\4\0\1\u01e4\1\0\1\u01eb\1\0\2\u01ec"+
|
||||
"\55\0\1\u01e6\13\0\1\u01e6\4\0\1\u01e6\7\0\1\u01e6"+
|
||||
"\41\0\3\u01da\7\0\1\u01da\6\0\1\u01e6\13\0\1\u01e6"+
|
||||
"\4\0\1\u01e6\2\0\1\u01da\4\0\1\u01e6\1\0\1\u01db"+
|
||||
"\37\0\3\u01ea\7\0\1\u01ea\6\0\1\u01e9\13\0\1\u01e9"+
|
||||
"\4\0\1\u01e9\2\0\1\u01ea\4\0\1\u01e9\1\0\1\u01eb"+
|
||||
"\1\0\2\u01ec\34\0\3\u01ea\7\0\1\u01ea\41\0\1\u01eb"+
|
||||
"\37\0\3\u01eb\5\0\1\u01ed\1\0\1\u01eb\6\0\1\u01ee"+
|
||||
"\13\0\1\u01ee\4\0\1\u01ee\7\0\1\u01ee\55\0\1\u01ef"+
|
||||
"\4\0\1\u01f0\13\0\1\u01f0\4\0\1\u01f0\7\0\1\u01f0"+
|
||||
"\5\0\1\u01ef\54\0\1\u01f1\13\0\1\u01f1\4\0\1\u01f1"+
|
||||
"\7\0\1\u01f1\41\0\3\u01f2\5\0\1\u01f1\1\0\1\u01f2"+
|
||||
"\6\0\1\u01ee\13\0\1\u01ee\4\0\1\u01ee\2\0\1\u01f2"+
|
||||
"\4\0\1\u01ee\1\0\1\u01f3\1\0\2\u01f4\55\0\1\u01f0"+
|
||||
"\13\0\1\u01f0\4\0\1\u01f0\7\0\1\u01f0\41\0\3\u01ea"+
|
||||
"\7\0\1\u01ea\6\0\1\u01f0\13\0\1\u01f0\4\0\1\u01f0"+
|
||||
"\2\0\1\u01ea\4\0\1\u01f0\1\0\1\u01eb\37\0\3\u01f2"+
|
||||
"\7\0\1\u01f2\6\0\1\u01f1\13\0\1\u01f1\4\0\1\u01f1"+
|
||||
"\2\0\1\u01f2\4\0\1\u01f1\1\0\1\u01f3\1\0\2\u01f4"+
|
||||
"\34\0\3\u01f2\7\0\1\u01f2\41\0\1\u01f3\37\0\3\u01f3"+
|
||||
"\5\0\1\u01f5\1\0\1\u01f3\6\0\1\u01f6\13\0\1\u01f6"+
|
||||
"\4\0\1\u01f6\7\0\1\u01f6\55\0\1\u01f7\4\0\1\u01f8"+
|
||||
"\13\0\1\u01f8\4\0\1\u01f8\7\0\1\u01f8\5\0\1\u01f7"+
|
||||
"\54\0\1\u01f9\13\0\1\u01f9\4\0\1\u01f9\7\0\1\u01f9"+
|
||||
"\41\0\3\u01fa\5\0\1\u01f9\1\0\1\u01fa\6\0\1\u01f6"+
|
||||
"\13\0\1\u01f6\4\0\1\u01f6\2\0\1\u01fa\4\0\1\u01f6"+
|
||||
"\2\0\1\u01fb\2\u01fc\55\0\1\u01f8\13\0\1\u01f8\4\0"+
|
||||
"\1\u01f8\7\0\1\u01f8\41\0\3\u01f2\7\0\1\u01f2\6\0"+
|
||||
"\1\u01f8\13\0\1\u01f8\4\0\1\u01f8\2\0\1\u01f2\4\0"+
|
||||
"\1\u01f8\1\0\1\u01f3\37\0\3\u01fa\7\0\1\u01fa\6\0"+
|
||||
"\1\u01f9\13\0\1\u01f9\4\0\1\u01f9\2\0\1\u01fa\4\0"+
|
||||
"\1\u01f9\2\0\1\u01fb\2\u01fc\34\0\3\u01fa\7\0\1\u01fa"+
|
||||
"\42\0\1\u01fb\52\0\1\u01fd\4\0\1\u01fe\13\0\1\u01fe"+
|
||||
"\4\0\1\u01fe\7\0\1\u01fe\5\0\1\u01fd\54\0\1\u01fe"+
|
||||
"\13\0\1\u01fe\4\0\1\u01fe\7\0\1\u01fe\41\0\3\u01fa"+
|
||||
"\7\0\1\u01fa\6\0\1\u01fe\13\0\1\u01fe\4\0\1\u01fe"+
|
||||
"\2\0\1\u01fa\4\0\1\u01fe\2\0\1\u01fb\35\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[26980];
|
||||
@@ -970,13 +971,13 @@ public final class ActionScriptLexer {
|
||||
"\1\0\1\1\1\11\31\1\2\11\27\1\2\11\2\0"+
|
||||
"\2\11\1\0\1\11\2\0\1\1\4\0\2\11\2\0"+
|
||||
"\2\1\1\11\1\0\1\11\51\1\1\0\1\11\1\0"+
|
||||
"\2\11\2\0\1\11\1\0\1\11\1\0\41\1\2\0"+
|
||||
"\32\1\2\0\5\1\2\0\14\1\2\0\3\1\2\0"+
|
||||
"\10\1\1\0\1\11\1\1\4\0\5\1\1\11\4\0"+
|
||||
"\2\1\22\0\1\11\3\0";
|
||||
"\2\11\2\0\1\11\1\0\1\11\1\1\1\0\41\1"+
|
||||
"\2\0\32\1\2\0\5\1\2\0\14\1\2\0\3\1"+
|
||||
"\2\0\10\1\1\0\1\11\1\1\4\0\5\1\1\11"+
|
||||
"\4\0\2\1\22\0\1\11\3\0";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[509];
|
||||
int [] result = new int[510];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,949 @@
|
||||
/* The following code was generated by JFlex 1.6.0 */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010-2016 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
import java.io.StringReader;
|
||||
|
||||
|
||||
/**
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.6.0
|
||||
* from the specification file <tt>C:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscriptdoc.flex</tt>
|
||||
*/
|
||||
public final class ActionScriptDocLexer {
|
||||
|
||||
/** This character denotes the end of file */
|
||||
public static final int YYEOF = -1;
|
||||
|
||||
/** initial size of the lookahead buffer */
|
||||
private static final int ZZ_BUFFERSIZE = 16384;
|
||||
|
||||
/** lexical states */
|
||||
public static final int YYINITIAL = 0;
|
||||
public static final int STRING = 2;
|
||||
public static final int CHARLITERAL = 4;
|
||||
public static final int XMLCDATA = 6;
|
||||
public static final int XMLCOMMENT = 8;
|
||||
public static final int OIDENTIFIER = 10;
|
||||
public static final int ADOC = 12;
|
||||
public static final int ADOC_TAG = 14;
|
||||
|
||||
/**
|
||||
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
|
||||
* ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
|
||||
* at the beginning of a line
|
||||
* l is of the form l = 2*k, k a non negative integer
|
||||
*/
|
||||
private static final int ZZ_LEXSTATE[] = {
|
||||
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7
|
||||
};
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\0\1\14\1\2\1\67\1\3\1\1\22\0\1\13\1\15\1\35"+
|
||||
"\1\65\1\6\2\0\1\36\1\54\1\56\1\5\1\61\1\55\1\16"+
|
||||
"\1\11\1\4\1\37\3\24\1\53\3\24\2\24\1\20\1\0\1\12"+
|
||||
"\1\0\1\17\1\0\1\64\1\32\1\21\1\30\1\31\1\57\1\21"+
|
||||
"\15\26\1\33\3\26\1\42\2\26\1\27\1\62\1\34\1\0\1\10"+
|
||||
"\1\0\1\51\2\43\1\45\1\60\1\46\2\22\1\40\2\22\1\47"+
|
||||
"\1\44\1\22\1\50\4\22\1\52\1\40\2\22\1\41\2\22\1\66"+
|
||||
"\11\0\1\67\41\0\1\63\2\0\1\23\12\0\1\23\1\0\1\25"+
|
||||
"\2\0\1\23\5\0\27\23\1\0\37\23\1\0\u01ca\23\4\0\14\23"+
|
||||
"\16\0\5\23\7\0\1\23\1\0\1\23\21\0\160\7\5\23\1\0"+
|
||||
"\2\23\2\0\4\23\1\0\1\23\6\0\1\23\1\0\3\23\1\0"+
|
||||
"\1\23\1\0\24\23\1\0\123\23\1\0\213\23\1\0\5\7\2\0"+
|
||||
"\246\23\1\0\46\23\2\0\1\23\7\0\47\23\11\0\55\7\1\0"+
|
||||
"\1\7\1\0\2\7\1\0\2\7\1\0\1\7\10\0\33\23\5\0"+
|
||||
"\3\23\35\0\13\7\5\0\53\23\37\7\4\0\2\23\1\7\143\23"+
|
||||
"\1\0\1\23\7\7\2\0\6\7\2\23\2\7\1\0\4\7\2\23"+
|
||||
"\12\7\3\23\2\0\1\23\20\0\1\23\1\7\36\23\33\7\2\0"+
|
||||
"\131\23\13\7\1\23\16\0\12\7\41\23\11\7\2\23\4\0\1\23"+
|
||||
"\5\0\26\23\4\7\1\23\11\7\1\23\3\7\1\23\5\7\22\0"+
|
||||
"\31\23\3\7\104\0\23\23\61\0\40\7\66\23\3\7\1\23\22\7"+
|
||||
"\1\23\7\7\12\23\2\7\2\0\12\7\1\0\20\23\3\7\1\0"+
|
||||
"\10\23\2\0\2\23\2\0\26\23\1\0\7\23\1\0\1\23\3\0"+
|
||||
"\4\23\2\0\1\7\1\23\7\7\2\0\2\7\2\0\3\7\1\23"+
|
||||
"\10\0\1\7\4\0\2\23\1\0\3\23\2\7\2\0\12\7\2\23"+
|
||||
"\17\0\3\7\1\0\6\23\4\0\2\23\2\0\26\23\1\0\7\23"+
|
||||
"\1\0\2\23\1\0\2\23\1\0\2\23\2\0\1\7\1\0\5\7"+
|
||||
"\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\23\1\0\1\23"+
|
||||
"\7\0\14\7\3\23\1\7\13\0\3\7\1\0\11\23\1\0\3\23"+
|
||||
"\1\0\26\23\1\0\7\23\1\0\2\23\1\0\5\23\2\0\1\7"+
|
||||
"\1\23\10\7\1\0\3\7\1\0\3\7\2\0\1\23\17\0\2\23"+
|
||||
"\2\7\2\0\12\7\21\0\3\7\1\0\10\23\2\0\2\23\2\0"+
|
||||
"\26\23\1\0\7\23\1\0\2\23\1\0\5\23\2\0\1\7\1\23"+
|
||||
"\7\7\2\0\2\7\2\0\3\7\10\0\2\7\4\0\2\23\1\0"+
|
||||
"\3\23\2\7\2\0\12\7\1\0\1\23\20\0\1\7\1\23\1\0"+
|
||||
"\6\23\3\0\3\23\1\0\4\23\3\0\2\23\1\0\1\23\1\0"+
|
||||
"\2\23\3\0\2\23\3\0\3\23\3\0\14\23\4\0\5\7\3\0"+
|
||||
"\3\7\1\0\4\7\2\0\1\23\6\0\1\7\16\0\12\7\20\0"+
|
||||
"\4\7\1\0\10\23\1\0\3\23\1\0\27\23\1\0\20\23\3\0"+
|
||||
"\1\23\7\7\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\23"+
|
||||
"\6\0\2\23\2\7\2\0\12\7\21\0\3\7\1\0\10\23\1\0"+
|
||||
"\3\23\1\0\27\23\1\0\12\23\1\0\5\23\2\0\1\7\1\23"+
|
||||
"\7\7\1\0\3\7\1\0\4\7\7\0\2\7\7\0\1\23\1\0"+
|
||||
"\2\23\2\7\2\0\12\7\1\0\2\23\16\0\3\7\1\0\10\23"+
|
||||
"\1\0\3\23\1\0\51\23\2\0\1\23\7\7\1\0\3\7\1\0"+
|
||||
"\4\7\1\23\10\0\1\7\10\0\2\23\2\7\2\0\12\7\12\0"+
|
||||
"\6\23\2\0\2\7\1\0\22\23\3\0\30\23\1\0\11\23\1\0"+
|
||||
"\1\23\2\0\7\23\3\0\1\7\4\0\6\7\1\0\1\7\1\0"+
|
||||
"\10\7\6\0\12\7\2\0\2\7\15\0\60\23\1\7\2\23\7\7"+
|
||||
"\5\0\7\23\10\7\1\0\12\7\47\0\2\23\1\0\1\23\2\0"+
|
||||
"\2\23\1\0\1\23\2\0\1\23\6\0\4\23\1\0\7\23\1\0"+
|
||||
"\3\23\1\0\1\23\1\0\1\23\2\0\2\23\1\0\4\23\1\7"+
|
||||
"\2\23\6\7\1\0\2\7\1\23\2\0\5\23\1\0\1\23\1\0"+
|
||||
"\6\7\2\0\12\7\2\0\4\23\40\0\1\23\27\0\2\7\6\0"+
|
||||
"\12\7\13\0\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\23"+
|
||||
"\1\0\44\23\4\0\24\7\1\0\2\7\5\23\13\7\1\0\44\7"+
|
||||
"\11\0\1\7\71\0\53\23\24\7\1\23\12\7\6\0\6\23\4\7"+
|
||||
"\4\23\3\7\1\23\3\7\2\23\7\7\3\23\4\7\15\23\14\7"+
|
||||
"\1\23\17\7\2\0\46\23\1\0\1\23\5\0\1\23\2\0\53\23"+
|
||||
"\1\0\u014d\23\1\0\4\23\2\0\7\23\1\0\1\23\1\0\4\23"+
|
||||
"\2\0\51\23\1\0\4\23\2\0\41\23\1\0\4\23\2\0\7\23"+
|
||||
"\1\0\1\23\1\0\4\23\2\0\17\23\1\0\71\23\1\0\4\23"+
|
||||
"\2\0\103\23\2\0\3\7\40\0\20\23\20\0\125\23\14\0\u026c\23"+
|
||||
"\2\0\21\23\1\0\32\23\5\0\113\23\3\0\3\7\10\23\7\0"+
|
||||
"\15\23\1\0\4\23\3\7\13\0\22\23\3\7\13\0\22\23\2\7"+
|
||||
"\14\0\15\23\1\0\3\23\1\0\2\7\14\0\64\23\40\7\3\0"+
|
||||
"\1\23\4\0\1\23\1\7\2\0\12\7\41\0\3\7\2\0\12\7"+
|
||||
"\6\0\130\23\10\0\51\23\1\7\1\23\5\0\106\23\12\0\37\23"+
|
||||
"\1\0\14\7\4\0\14\7\12\0\12\7\36\23\2\0\5\23\13\0"+
|
||||
"\54\23\4\0\21\7\7\23\2\7\6\0\12\7\46\0\27\23\5\7"+
|
||||
"\4\0\65\23\12\7\1\0\35\7\2\0\13\7\6\0\12\7\15\0"+
|
||||
"\1\23\10\0\16\7\102\0\5\7\57\23\21\7\7\23\4\0\12\7"+
|
||||
"\21\0\11\7\14\0\3\7\36\23\15\7\2\23\12\7\54\23\16\7"+
|
||||
"\14\0\44\23\24\7\10\0\12\7\3\0\3\23\12\7\44\23\122\0"+
|
||||
"\3\7\1\0\25\7\4\23\1\7\4\23\3\7\2\23\1\0\2\7"+
|
||||
"\6\0\300\23\66\7\6\0\4\7\u0116\23\2\0\6\23\2\0\46\23"+
|
||||
"\2\0\6\23\2\0\10\23\1\0\1\23\1\0\1\23\1\0\1\23"+
|
||||
"\1\0\37\23\2\0\65\23\1\0\7\23\1\0\1\23\3\0\3\23"+
|
||||
"\1\0\7\23\3\0\4\23\2\0\6\23\4\0\15\23\5\0\3\23"+
|
||||
"\1\0\7\23\3\0\14\0\2\0\32\0\1\67\1\67\25\0\2\7"+
|
||||
"\23\0\1\7\33\0\1\0\1\23\15\0\1\23\20\0\15\23\63\0"+
|
||||
"\15\7\4\0\1\7\3\0\14\7\21\0\1\23\4\0\1\23\2\0"+
|
||||
"\12\23\1\0\1\23\3\0\5\23\6\0\1\23\1\0\1\23\1\0"+
|
||||
"\1\23\1\0\4\23\1\0\13\23\2\0\4\23\5\0\5\23\4\0"+
|
||||
"\1\23\21\0\43\7\2\23\4\7\7\0\u0a70\0\57\23\1\0\57\23"+
|
||||
"\1\0\205\23\6\0\4\23\3\7\2\23\14\0\46\23\1\0\1\23"+
|
||||
"\5\0\1\23\2\0\70\23\7\0\1\23\17\0\1\7\27\23\11\0"+
|
||||
"\7\23\1\0\7\23\1\0\7\23\1\0\7\23\1\0\7\23\1\0"+
|
||||
"\7\23\1\0\7\23\1\0\7\23\1\0\40\7\57\0\1\23\u01c0\0"+
|
||||
"\21\0\4\0\2\23\1\7\31\0\17\7\1\0\5\23\2\0\3\7"+
|
||||
"\2\23\4\0\126\23\2\0\2\7\2\0\3\23\1\0\132\23\1\0"+
|
||||
"\4\23\5\0\51\23\3\0\136\23\21\0\33\23\65\0\20\23\u0200\0"+
|
||||
"\u19b6\23\112\0\u51cd\23\63\0\u048d\23\103\0\56\23\2\0\u010d\23\3\0"+
|
||||
"\20\23\12\7\2\23\24\0\57\23\1\7\4\0\12\7\1\0\37\23"+
|
||||
"\1\0\1\7\106\23\14\7\45\0\11\23\2\0\147\23\2\0\4\23"+
|
||||
"\1\0\36\23\2\0\2\23\105\0\13\23\1\7\3\23\1\7\4\23"+
|
||||
"\1\7\27\23\5\7\30\0\64\23\14\0\2\7\62\23\21\7\13\0"+
|
||||
"\12\7\6\0\22\7\6\23\3\0\1\23\4\0\12\7\34\23\10\7"+
|
||||
"\2\0\27\23\15\7\14\0\35\23\3\0\4\7\57\23\16\7\16\0"+
|
||||
"\1\23\12\7\6\0\5\23\1\7\12\23\12\7\5\23\1\0\51\23"+
|
||||
"\16\7\11\0\3\23\1\7\10\23\2\7\2\0\12\7\6\0\27\23"+
|
||||
"\3\0\1\23\3\7\62\23\1\7\1\23\3\7\2\23\2\7\5\23"+
|
||||
"\2\7\1\23\1\7\1\23\30\0\3\23\2\0\13\23\5\7\2\0"+
|
||||
"\3\23\2\7\12\0\6\23\2\0\6\23\2\0\6\23\11\0\7\23"+
|
||||
"\1\0\7\23\1\0\53\23\1\0\4\23\4\0\2\23\132\0\43\23"+
|
||||
"\10\7\1\0\2\7\2\0\12\7\6\0\u2ba4\23\14\0\27\23\4\0"+
|
||||
"\61\23\4\0\u1800\0\u0900\0\u016e\23\2\0\152\23\46\0\7\23\14\0"+
|
||||
"\5\23\5\0\1\23\1\7\12\23\1\0\15\23\1\0\5\23\1\0"+
|
||||
"\1\23\1\0\2\23\1\0\2\23\1\0\154\23\41\0\u016b\23\22\0"+
|
||||
"\100\23\2\0\66\23\10\0\40\0\14\23\4\0\20\7\20\0\16\7"+
|
||||
"\5\0\2\7\30\0\3\7\40\0\5\23\1\0\207\23\23\0\12\7"+
|
||||
"\7\0\32\23\4\0\1\7\1\0\32\23\13\0\131\23\3\0\6\23"+
|
||||
"\2\0\6\23\2\0\6\23\2\0\3\23\41\0\2\0\14\23\1\0"+
|
||||
"\32\23\1\0\23\23\1\0\2\23\1\0\17\23\2\0\16\23\42\0"+
|
||||
"\173\23\105\0\65\7\210\0\1\7\202\0\35\23\3\0\61\23\17\0"+
|
||||
"\1\7\37\0\40\23\20\0\21\23\1\7\10\23\1\7\5\0\46\23"+
|
||||
"\5\7\5\0\36\23\2\0\44\23\4\0\10\23\1\0\5\7\52\0"+
|
||||
"\236\23\2\0\12\7\126\0\50\23\10\0\64\23\234\0\u0137\23\11\0"+
|
||||
"\26\23\12\0\10\23\230\0\6\23\2\0\1\23\1\0\54\23\1\0"+
|
||||
"\2\23\3\0\1\23\2\0\27\23\12\0\27\23\11\0\37\23\141\0"+
|
||||
"\26\23\12\0\32\23\106\0\70\23\6\0\2\23\100\0\1\23\3\7"+
|
||||
"\1\0\2\7\5\0\4\7\4\23\1\0\3\23\1\0\33\23\4\0"+
|
||||
"\3\7\4\0\1\7\40\0\35\23\3\0\35\23\43\0\10\23\1\0"+
|
||||
"\34\23\2\7\31\0\66\23\12\0\26\23\12\0\23\23\15\0\22\23"+
|
||||
"\156\0\111\23\u03b7\0\3\7\65\23\17\7\37\0\12\7\17\0\4\7"+
|
||||
"\55\23\13\7\25\0\31\23\7\0\12\7\6\0\3\7\44\23\16\7"+
|
||||
"\1\0\12\7\20\0\43\23\1\7\2\0\1\23\11\0\3\7\60\23"+
|
||||
"\16\7\4\23\13\0\12\7\1\23\45\0\22\23\1\0\31\23\14\7"+
|
||||
"\170\0\57\23\14\7\5\0\12\7\7\0\3\7\1\0\10\23\2\0"+
|
||||
"\2\23\2\0\26\23\1\0\7\23\1\0\2\23\1\0\5\23\2\0"+
|
||||
"\1\7\1\23\7\7\2\0\2\7\2\0\3\7\11\0\1\7\5\0"+
|
||||
"\5\23\2\7\2\0\7\7\3\0\5\7\u010b\0\60\23\24\7\2\23"+
|
||||
"\1\0\1\23\10\0\12\7\246\0\57\23\7\7\2\0\11\7\77\0"+
|
||||
"\60\23\21\7\3\0\1\23\13\0\12\7\46\0\53\23\15\7\10\0"+
|
||||
"\12\7\u01d6\0\100\23\12\7\25\0\1\23\u01c0\0\71\23\u0507\0\u0399\23"+
|
||||
"\147\0\157\7\u0b91\0\u042f\23\u33d1\0\u0239\23\7\0\37\23\1\0\12\7"+
|
||||
"\146\0\36\23\2\0\5\7\13\0\60\23\7\7\11\0\4\23\14\0"+
|
||||
"\12\7\11\0\25\23\5\0\23\23\u0370\0\105\23\13\0\1\23\56\7"+
|
||||
"\20\0\4\7\15\23\u4060\0\2\23\u0bfe\0\153\23\5\0\15\23\3\0"+
|
||||
"\11\23\7\0\12\23\3\0\2\7\u14c6\0\5\7\3\0\6\7\10\0"+
|
||||
"\10\7\2\0\7\7\36\0\4\7\224\0\3\7\u01bb\0\125\23\1\0"+
|
||||
"\107\23\1\0\2\23\2\0\1\23\2\0\2\23\2\0\4\23\1\0"+
|
||||
"\14\23\1\0\1\23\1\0\7\23\1\0\101\23\1\0\4\23\2\0"+
|
||||
"\10\23\1\0\7\23\1\0\34\23\1\0\4\23\1\0\5\23\1\0"+
|
||||
"\1\23\3\0\7\23\1\0\u0154\23\2\0\31\23\1\0\31\23\1\0"+
|
||||
"\37\23\1\0\31\23\1\0\37\23\1\0\31\23\1\0\37\23\1\0"+
|
||||
"\31\23\1\0\37\23\1\0\31\23\1\0\10\23\2\0\62\7\u1000\0"+
|
||||
"\305\23\13\0\7\7\u0529\0\4\23\1\0\33\23\1\0\2\23\1\0"+
|
||||
"\1\23\2\0\1\23\1\0\12\23\1\0\4\23\1\0\1\23\1\0"+
|
||||
"\1\23\6\0\1\23\4\0\1\23\1\0\1\23\1\0\1\23\1\0"+
|
||||
"\3\23\1\0\2\23\1\0\1\23\2\0\1\23\1\0\1\23\1\0"+
|
||||
"\1\23\1\0\1\23\1\0\1\23\1\0\2\23\1\0\1\23\2\0"+
|
||||
"\4\23\1\0\7\23\1\0\4\23\1\0\4\23\1\0\1\23\1\0"+
|
||||
"\12\23\1\0\21\23\5\0\3\23\1\0\5\23\1\0\21\23\u1144\0"+
|
||||
"\ua6d7\23\51\0\u1035\23\13\0\336\23\u3fe2\0\u021e\23\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u06ed\0"+
|
||||
"\360\7\uffff\0\uffff\0\ufe12\0";
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
|
||||
|
||||
/**
|
||||
* Translates DFA states to action switch labels.
|
||||
*/
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\10\0\10\1\1\2\1\3\2\1\1\4\2\1\2\5"+
|
||||
"\1\6\1\1\1\6\2\1\1\7\1\1\2\7\1\10"+
|
||||
"\2\11\1\12\1\0\1\1\2\0\2\1\2\0\1\1"+
|
||||
"\1\0\1\1\2\0\2\1\3\0\1\13\1\14\1\1"+
|
||||
"\2\0\1\1\1\15\1\0\1\1\3\0\3\1\2\0"+
|
||||
"\1\1\1\16\1\0\1\1\1\0\1\1\1\0\1\1"+
|
||||
"\6\0\1\17\35\0";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[117];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static int zzUnpackAction(String packed, int offset, int [] result) {
|
||||
int i = 0; /* index in packed string */
|
||||
int j = offset; /* index in unpacked array */
|
||||
int l = packed.length();
|
||||
while (i < l) {
|
||||
int count = packed.charAt(i++);
|
||||
int value = packed.charAt(i++);
|
||||
do result[j++] = value; while (--count > 0);
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Translates a state to a row index in the transition table
|
||||
*/
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\70\0\160\0\250\0\340\0\u0118\0\u0150\0\u0188"+
|
||||
"\0\u01c0\0\u01f8\0\u0230\0\u0268\0\u02a0\0\u02d8\0\u0310\0\u0348"+
|
||||
"\0\u01c0\0\u01c0\0\u0380\0\u03b8\0\u03f0\0\u0428\0\u0460\0\u0498"+
|
||||
"\0\u01c0\0\u01c0\0\u04d0\0\u0508\0\u0540\0\u0578\0\u01c0\0\u05b0"+
|
||||
"\0\u05e8\0\u0620\0\u01c0\0\u01c0\0\u0658\0\u0690\0\u06c8\0\u0700"+
|
||||
"\0\u0738\0\u0770\0\u07a8\0\u07e0\0\u0818\0\u0850\0\u0888\0\u08c0"+
|
||||
"\0\u08f8\0\u0930\0\u0968\0\u09a0\0\u09d8\0\u0a10\0\u05e8\0\u0a48"+
|
||||
"\0\u01c0\0\u01c0\0\u0a80\0\u0ab8\0\u0af0\0\u0b28\0\u06c8\0\u0b60"+
|
||||
"\0\u0b98\0\u0bd0\0\u0c08\0\u0c40\0\u0c78\0\u08c0\0\u0cb0\0\u0ce8"+
|
||||
"\0\u0d20\0\u0d58\0\u01c0\0\u0d90\0\u0dc8\0\u0e00\0\u0e38\0\u0e70"+
|
||||
"\0\u0ea8\0\u0ee0\0\u0f18\0\u0f50\0\u0f88\0\u0fc0\0\u0ff8\0\u01c0"+
|
||||
"\0\u1030\0\u1068\0\u10a0\0\u10d8\0\u1110\0\u1148\0\u1180\0\u11b8"+
|
||||
"\0\u11f0\0\u1228\0\u1260\0\u1298\0\u12d0\0\u1308\0\u1340\0\u1378"+
|
||||
"\0\u13b0\0\u13e8\0\u1420\0\u1458\0\u1490\0\u14c8\0\u1500\0\u1538"+
|
||||
"\0\u1570\0\u15a8\0\u15e0\0\u1618\0\u1650";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[117];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static int zzUnpackRowMap(String packed, int offset, int [] result) {
|
||||
int i = 0; /* index in packed string */
|
||||
int j = offset; /* index in unpacked array */
|
||||
int l = packed.length();
|
||||
while (i < l) {
|
||||
int high = packed.charAt(i++) << 16;
|
||||
result[j++] = high | packed.charAt(i++);
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
/**
|
||||
* The transition table of the DFA
|
||||
*/
|
||||
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\1\11\1\12\1\11\1\13\1\14\1\11\1\15\1\11"+
|
||||
"\1\15\1\16\1\17\2\13\4\11\3\15\1\20\1\11"+
|
||||
"\1\15\1\11\4\15\1\11\1\21\1\22\1\23\6\15"+
|
||||
"\1\24\4\15\1\20\3\11\2\15\2\11\1\25\1\26"+
|
||||
"\1\27\3\11\1\30\1\31\32\11\1\32\24\11\1\33"+
|
||||
"\6\11\1\34\1\32\33\11\1\32\23\11\1\33\6\11"+
|
||||
"\1\12\32\11\1\35\34\11\1\12\14\11\1\36\133\11"+
|
||||
"\1\33\1\32\4\11\1\37\1\40\1\41\1\11\1\37"+
|
||||
"\1\42\56\37\1\43\2\37\1\11\1\44\1\11\1\44"+
|
||||
"\1\11\1\44\1\45\13\44\3\46\2\44\1\46\1\44"+
|
||||
"\4\46\4\44\13\46\4\44\2\46\6\44\1\11\72\0"+
|
||||
"\1\11\70\0\1\13\7\0\2\13\53\0\1\47\2\0"+
|
||||
"\1\47\1\50\1\51\54\47\1\52\5\47\6\0\3\15"+
|
||||
"\10\0\4\15\1\0\1\15\1\0\4\15\3\0\15\15"+
|
||||
"\3\0\2\15\21\0\1\11\11\0\1\53\12\0\1\53"+
|
||||
"\13\0\1\53\24\0\1\54\4\0\1\55\2\0\3\54"+
|
||||
"\3\0\1\54\1\0\4\54\4\0\13\54\4\0\2\54"+
|
||||
"\5\0\1\11\12\0\1\53\12\0\1\20\12\0\1\20"+
|
||||
"\1\11\3\0\3\11\4\0\1\20\3\0\2\56\20\0"+
|
||||
"\1\53\12\0\1\57\12\0\1\57\1\11\2\60\1\0"+
|
||||
"\3\11\4\0\1\57\3\0\2\56\15\0\3\15\10\0"+
|
||||
"\4\15\1\0\1\15\1\0\4\15\3\0\10\15\1\61"+
|
||||
"\4\15\3\0\2\15\72\0\1\62\41\0\1\63\56\0"+
|
||||
"\1\64\12\0\1\65\13\0\1\64\16\0\1\31\65\0"+
|
||||
"\1\11\3\0\63\11\3\0\1\32\121\0\1\66\51\0"+
|
||||
"\1\66\53\0\1\67\2\0\1\70\5\0\1\67\61\0"+
|
||||
"\1\70\5\0\1\67\60\0\1\71\67\0\1\72\104\0"+
|
||||
"\3\46\2\0\1\46\1\0\4\46\4\0\13\46\4\0"+
|
||||
"\2\46\7\0\1\47\2\0\1\47\1\73\55\47\1\52"+
|
||||
"\5\47\1\50\1\12\1\11\65\50\1\74\2\75\1\74"+
|
||||
"\1\76\1\77\54\74\1\100\5\74\1\47\2\0\1\47"+
|
||||
"\1\101\55\47\1\52\5\47\24\0\1\53\12\0\1\53"+
|
||||
"\4\0\3\11\4\0\1\53\3\0\2\56\17\0\2\54"+
|
||||
"\4\0\1\54\1\0\3\54\1\0\3\54\1\0\4\54"+
|
||||
"\3\0\15\54\3\0\2\54\25\0\1\102\10\0\1\103"+
|
||||
"\56\0\1\104\5\0\1\105\12\0\1\105\13\0\1\105"+
|
||||
"\5\0\1\104\17\0\1\53\12\0\1\57\12\0\1\57"+
|
||||
"\4\0\3\11\4\0\1\57\3\0\2\56\30\0\1\106"+
|
||||
"\2\0\1\106\3\0\3\106\4\0\1\106\3\0\1\106"+
|
||||
"\1\0\2\106\2\0\1\106\1\0\1\106\3\0\2\106"+
|
||||
"\15\0\3\15\10\0\4\15\1\0\1\15\1\0\4\15"+
|
||||
"\3\0\11\15\1\107\3\15\3\0\2\15\15\0\1\15"+
|
||||
"\1\0\1\15\10\0\3\15\2\0\1\15\1\0\4\15"+
|
||||
"\4\0\13\15\4\0\2\15\7\0\1\63\2\0\32\63"+
|
||||
"\1\11\32\63\24\0\1\64\12\0\1\64\1\11\12\0"+
|
||||
"\1\64\54\0\1\11\46\0\1\32\50\0\4\11\1\0"+
|
||||
"\63\11\22\0\1\73\15\0\2\73\1\0\10\73\5\0"+
|
||||
"\1\73\7\0\1\74\2\75\1\74\1\76\1\110\54\74"+
|
||||
"\1\100\5\74\5\75\1\111\67\75\1\111\14\75\1\76"+
|
||||
"\15\75\2\76\1\75\10\76\5\75\1\76\7\75\1\74"+
|
||||
"\2\75\1\74\1\112\1\110\54\74\1\100\5\74\1\47"+
|
||||
"\2\0\1\47\1\73\15\47\1\101\15\47\2\101\1\47"+
|
||||
"\10\101\5\47\1\101\1\47\1\52\5\47\16\0\1\113"+
|
||||
"\101\0\1\114\63\0\1\105\12\0\1\105\13\0\1\105"+
|
||||
"\40\0\1\105\12\0\1\105\4\0\3\11\4\0\1\105"+
|
||||
"\22\0\3\15\10\0\4\15\1\0\1\15\1\0\4\15"+
|
||||
"\3\0\12\15\1\115\2\15\3\0\2\15\7\0\1\74"+
|
||||
"\2\75\1\74\1\73\1\110\54\74\1\100\5\74\4\75"+
|
||||
"\1\11\1\111\62\75\1\74\2\75\1\74\1\76\1\110"+
|
||||
"\14\74\1\112\15\74\2\112\1\74\10\112\5\74\1\112"+
|
||||
"\1\74\1\100\5\74\31\0\1\116\44\0\3\15\10\0"+
|
||||
"\4\15\1\0\1\15\1\0\4\15\3\0\13\15\1\117"+
|
||||
"\1\15\3\0\2\15\41\0\1\120\43\0\3\15\10\0"+
|
||||
"\4\15\1\0\1\15\1\0\4\15\3\0\14\15\1\121"+
|
||||
"\3\0\2\15\42\0\1\122\35\0\3\123\2\0\3\15"+
|
||||
"\2\0\2\123\4\0\4\15\1\0\1\15\1\0\4\15"+
|
||||
"\3\0\15\15\1\124\2\0\2\15\41\0\1\125\36\0"+
|
||||
"\3\123\7\0\2\123\37\0\1\124\14\0\3\124\5\0"+
|
||||
"\1\126\1\0\2\124\7\0\1\127\12\0\1\127\13\0"+
|
||||
"\1\127\43\0\1\130\64\0\1\131\12\0\1\131\13\0"+
|
||||
"\1\131\15\0\3\132\5\0\1\131\1\0\2\132\7\0"+
|
||||
"\1\127\12\0\1\127\6\0\1\132\4\0\1\127\1\0"+
|
||||
"\1\133\1\0\2\134\10\0\3\132\7\0\2\132\7\0"+
|
||||
"\1\131\12\0\1\131\6\0\1\132\4\0\1\131\1\0"+
|
||||
"\1\133\1\0\2\134\10\0\3\132\7\0\2\132\40\0"+
|
||||
"\1\133\13\0\3\133\5\0\1\135\1\0\2\133\7\0"+
|
||||
"\1\136\12\0\1\136\13\0\1\136\32\0\1\137\5\0"+
|
||||
"\1\140\12\0\1\140\13\0\1\140\5\0\1\137\32\0"+
|
||||
"\1\141\12\0\1\141\13\0\1\141\15\0\3\142\5\0"+
|
||||
"\1\141\1\0\2\142\7\0\1\136\12\0\1\136\6\0"+
|
||||
"\1\142\4\0\1\136\1\0\1\143\1\0\2\144\33\0"+
|
||||
"\1\140\12\0\1\140\13\0\1\140\15\0\3\132\7\0"+
|
||||
"\2\132\7\0\1\140\12\0\1\140\6\0\1\132\4\0"+
|
||||
"\1\140\1\0\1\133\13\0\3\142\7\0\2\142\7\0"+
|
||||
"\1\141\12\0\1\141\6\0\1\142\4\0\1\141\1\0"+
|
||||
"\1\143\1\0\2\144\10\0\3\142\7\0\2\142\40\0"+
|
||||
"\1\143\13\0\3\143\5\0\1\145\1\0\2\143\7\0"+
|
||||
"\1\146\12\0\1\146\13\0\1\146\32\0\1\147\5\0"+
|
||||
"\1\150\12\0\1\150\13\0\1\150\5\0\1\147\32\0"+
|
||||
"\1\151\12\0\1\151\13\0\1\151\15\0\3\152\5\0"+
|
||||
"\1\151\1\0\2\152\7\0\1\146\12\0\1\146\6\0"+
|
||||
"\1\152\4\0\1\146\1\0\1\153\1\0\2\154\33\0"+
|
||||
"\1\150\12\0\1\150\13\0\1\150\15\0\3\142\7\0"+
|
||||
"\2\142\7\0\1\150\12\0\1\150\6\0\1\142\4\0"+
|
||||
"\1\150\1\0\1\143\13\0\3\152\7\0\2\152\7\0"+
|
||||
"\1\151\12\0\1\151\6\0\1\152\4\0\1\151\1\0"+
|
||||
"\1\153\1\0\2\154\10\0\3\152\7\0\2\152\40\0"+
|
||||
"\1\153\13\0\3\153\5\0\1\155\1\0\2\153\7\0"+
|
||||
"\1\156\12\0\1\156\13\0\1\156\32\0\1\157\5\0"+
|
||||
"\1\160\12\0\1\160\13\0\1\160\5\0\1\157\32\0"+
|
||||
"\1\161\12\0\1\161\13\0\1\161\15\0\3\162\5\0"+
|
||||
"\1\161\1\0\2\162\7\0\1\156\12\0\1\156\6\0"+
|
||||
"\1\162\4\0\1\156\2\0\1\11\2\163\33\0\1\160"+
|
||||
"\12\0\1\160\13\0\1\160\15\0\3\152\7\0\2\152"+
|
||||
"\7\0\1\160\12\0\1\160\6\0\1\152\4\0\1\160"+
|
||||
"\1\0\1\153\13\0\3\162\7\0\2\162\7\0\1\161"+
|
||||
"\12\0\1\161\6\0\1\162\4\0\1\161\2\0\1\11"+
|
||||
"\2\163\10\0\3\162\7\0\2\162\41\0\1\11\27\0"+
|
||||
"\1\164\5\0\1\165\12\0\1\165\13\0\1\165\5\0"+
|
||||
"\1\164\32\0\1\165\12\0\1\165\13\0\1\165\15\0"+
|
||||
"\3\162\7\0\2\162\7\0\1\165\12\0\1\165\6\0"+
|
||||
"\1\162\4\0\1\165\2\0\1\11\11\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[5768];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static int zzUnpackTrans(String packed, int offset, int [] result) {
|
||||
int i = 0; /* index in packed string */
|
||||
int j = offset; /* index in unpacked array */
|
||||
int l = packed.length();
|
||||
while (i < l) {
|
||||
int count = packed.charAt(i++);
|
||||
int value = packed.charAt(i++);
|
||||
value--;
|
||||
do result[j++] = value; while (--count > 0);
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
|
||||
/* error codes */
|
||||
private static final int ZZ_UNKNOWN_ERROR = 0;
|
||||
private static final int ZZ_NO_MATCH = 1;
|
||||
private static final int ZZ_PUSHBACK_2BIG = 2;
|
||||
|
||||
/* error messages for the codes above */
|
||||
private static final String ZZ_ERROR_MSG[] = {
|
||||
"Unkown internal scanner error",
|
||||
"Error: could not match input",
|
||||
"Error: pushback value was too large"
|
||||
};
|
||||
|
||||
/**
|
||||
* ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
|
||||
*/
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\10\0\1\11\7\1\2\11\6\1\2\11\4\1\1\11"+
|
||||
"\3\1\2\11\2\1\1\0\1\1\2\0\2\1\2\0"+
|
||||
"\1\1\1\0\1\1\2\0\2\1\3\0\2\11\1\1"+
|
||||
"\2\0\2\1\1\0\1\1\3\0\3\1\2\0\1\1"+
|
||||
"\1\11\1\0\1\1\1\0\1\1\1\0\1\1\6\0"+
|
||||
"\1\11\35\0";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[117];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static int zzUnpackAttribute(String packed, int offset, int [] result) {
|
||||
int i = 0; /* index in packed string */
|
||||
int j = offset; /* index in unpacked array */
|
||||
int l = packed.length();
|
||||
while (i < l) {
|
||||
int count = packed.charAt(i++);
|
||||
int value = packed.charAt(i++);
|
||||
do result[j++] = value; while (--count > 0);
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
/** the input device */
|
||||
private java.io.Reader zzReader;
|
||||
|
||||
/** the current state of the DFA */
|
||||
private int zzState;
|
||||
|
||||
/** the current lexical state */
|
||||
private int zzLexicalState = YYINITIAL;
|
||||
|
||||
/** this buffer contains the current text to be matched and is
|
||||
the source of the yytext() string */
|
||||
private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
|
||||
|
||||
/** the textposition at the last accepting state */
|
||||
private int zzMarkedPos;
|
||||
|
||||
/** the current text position in the buffer */
|
||||
private int zzCurrentPos;
|
||||
|
||||
/** startRead marks the beginning of the yytext() string in the buffer */
|
||||
private int zzStartRead;
|
||||
|
||||
/** endRead marks the last character in the buffer, that has been read
|
||||
from input */
|
||||
private int zzEndRead;
|
||||
|
||||
/** number of newlines encountered up to the start of the matched text */
|
||||
private int yyline;
|
||||
|
||||
/** the number of characters up to the start of the matched text */
|
||||
private int yychar;
|
||||
|
||||
/**
|
||||
* the number of characters from the last newline up to the start of the
|
||||
* matched text
|
||||
*/
|
||||
private int yycolumn;
|
||||
|
||||
/**
|
||||
* zzAtBOL == true <=> the scanner is currently at the beginning of a line
|
||||
*/
|
||||
private boolean zzAtBOL = true;
|
||||
|
||||
/** zzAtEOF == true <=> the scanner is at the EOF */
|
||||
private boolean zzAtEOF;
|
||||
|
||||
/** denotes if the user-EOF-code has already been executed */
|
||||
private boolean zzEOFDone;
|
||||
|
||||
/**
|
||||
* The number of occupied positions in zzBuffer beyond zzEndRead.
|
||||
* When a lead/high surrogate has been read from the input stream
|
||||
* into the final zzBuffer position, this will have a value of 1;
|
||||
* otherwise, it will have a value of 0.
|
||||
*/
|
||||
private int zzFinalHighSurrogate = 0;
|
||||
|
||||
/* user code: */
|
||||
|
||||
public ActionScriptDocLexer(String sourceCode){
|
||||
this(new StringReader(sourceCode));
|
||||
}
|
||||
|
||||
public void begin(int state)
|
||||
{
|
||||
string.setLength(0);
|
||||
yybegin(state);
|
||||
}
|
||||
|
||||
int xmlLevel = 0;
|
||||
String tagName;
|
||||
StringBuilder string = new StringBuilder();
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new scanner
|
||||
*
|
||||
* @param in the java.io.Reader to read input from.
|
||||
*/
|
||||
public ActionScriptDocLexer(java.io.Reader in) {
|
||||
this.zzReader = in;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Unpacks the compressed character translation table.
|
||||
*
|
||||
* @param packed the packed character translation table
|
||||
* @return the unpacked character translation table
|
||||
*/
|
||||
private static char [] zzUnpackCMap(String packed) {
|
||||
char [] map = new char[0x110000];
|
||||
int i = 0; /* index in packed string */
|
||||
int j = 0; /* index in unpacked array */
|
||||
while (i < 3106) {
|
||||
int count = packed.charAt(i++);
|
||||
char value = packed.charAt(i++);
|
||||
do map[j++] = value; while (--count > 0);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Refills the input buffer.
|
||||
*
|
||||
* @return <code>false</code>, iff there was new input.
|
||||
*
|
||||
* @exception java.io.IOException if any I/O-Error occurs
|
||||
*/
|
||||
private boolean zzRefill() throws java.io.IOException {
|
||||
|
||||
/* first: make room (if you can) */
|
||||
if (zzStartRead > 0) {
|
||||
zzEndRead += zzFinalHighSurrogate;
|
||||
zzFinalHighSurrogate = 0;
|
||||
System.arraycopy(zzBuffer, zzStartRead,
|
||||
zzBuffer, 0,
|
||||
zzEndRead-zzStartRead);
|
||||
|
||||
/* translate stored positions */
|
||||
zzEndRead-= zzStartRead;
|
||||
zzCurrentPos-= zzStartRead;
|
||||
zzMarkedPos-= zzStartRead;
|
||||
zzStartRead = 0;
|
||||
}
|
||||
|
||||
/* is the buffer big enough? */
|
||||
if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
|
||||
/* if not: blow it up */
|
||||
char newBuffer[] = new char[zzBuffer.length*2];
|
||||
System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
|
||||
zzBuffer = newBuffer;
|
||||
zzEndRead += zzFinalHighSurrogate;
|
||||
zzFinalHighSurrogate = 0;
|
||||
}
|
||||
|
||||
/* fill the buffer with new input */
|
||||
int requested = zzBuffer.length - zzEndRead;
|
||||
int totalRead = 0;
|
||||
while (totalRead < requested) {
|
||||
int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
|
||||
if (numRead == -1) {
|
||||
break;
|
||||
}
|
||||
totalRead += numRead;
|
||||
}
|
||||
|
||||
if (totalRead > 0) {
|
||||
zzEndRead += totalRead;
|
||||
if (totalRead == requested) { /* possibly more input available */
|
||||
if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
|
||||
--zzEndRead;
|
||||
zzFinalHighSurrogate = 1;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// totalRead = 0: End of stream
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Closes the input stream.
|
||||
*/
|
||||
public final void yyclose() throws java.io.IOException {
|
||||
zzAtEOF = true; /* indicate end of file */
|
||||
zzEndRead = zzStartRead; /* invalidate buffer */
|
||||
|
||||
if (zzReader != null)
|
||||
zzReader.close();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Resets the scanner to read from a new input stream.
|
||||
* Does not close the old reader.
|
||||
*
|
||||
* All internal variables are reset, the old input stream
|
||||
* <b>cannot</b> be reused (internal buffer is discarded and lost).
|
||||
* Lexical state is set to <tt>ZZ_INITIAL</tt>.
|
||||
*
|
||||
* Internal scan buffer is resized down to its initial length, if it has grown.
|
||||
*
|
||||
* @param reader the new input stream
|
||||
*/
|
||||
public final void yyreset(java.io.Reader reader) {
|
||||
zzReader = reader;
|
||||
zzAtBOL = true;
|
||||
zzAtEOF = false;
|
||||
zzEOFDone = false;
|
||||
zzEndRead = zzStartRead = 0;
|
||||
zzCurrentPos = zzMarkedPos = 0;
|
||||
zzFinalHighSurrogate = 0;
|
||||
yyline = yychar = yycolumn = 0;
|
||||
zzLexicalState = YYINITIAL;
|
||||
if (zzBuffer.length > ZZ_BUFFERSIZE)
|
||||
zzBuffer = new char[ZZ_BUFFERSIZE];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current lexical state.
|
||||
*/
|
||||
public final int yystate() {
|
||||
return zzLexicalState;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Enters a new lexical state
|
||||
*
|
||||
* @param newState the new lexical state
|
||||
*/
|
||||
public final void yybegin(int newState) {
|
||||
zzLexicalState = newState;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the text matched by the current regular expression.
|
||||
*/
|
||||
public final String yytext() {
|
||||
return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the character at position <tt>pos</tt> from the
|
||||
* matched text.
|
||||
*
|
||||
* It is equivalent to yytext().charAt(pos), but faster
|
||||
*
|
||||
* @param pos the position of the character to fetch.
|
||||
* A value from 0 to yylength()-1.
|
||||
*
|
||||
* @return the character at position pos
|
||||
*/
|
||||
public final char yycharat(int pos) {
|
||||
return zzBuffer[zzStartRead+pos];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the length of the matched text region.
|
||||
*/
|
||||
public final int yylength() {
|
||||
return zzMarkedPos-zzStartRead;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reports an error that occured while scanning.
|
||||
*
|
||||
* In a wellformed scanner (no or only correct usage of
|
||||
* yypushback(int) and a match-all fallback rule) this method
|
||||
* will only be called with things that "Can't Possibly Happen".
|
||||
* If this method is called, something is seriously wrong
|
||||
* (e.g. a JFlex bug producing a faulty scanner etc.).
|
||||
*
|
||||
* Usual syntax/scanner level error handling should be done
|
||||
* in error fallback rules.
|
||||
*
|
||||
* @param errorCode the code of the errormessage to display
|
||||
*/
|
||||
private void zzScanError(int errorCode) {
|
||||
String message;
|
||||
try {
|
||||
message = ZZ_ERROR_MSG[errorCode];
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException e) {
|
||||
message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
|
||||
}
|
||||
|
||||
throw new Error(message);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Pushes the specified amount of characters back into the input stream.
|
||||
*
|
||||
* They will be read again by then next call of the scanning method
|
||||
*
|
||||
* @param number the number of characters to be read again.
|
||||
* This number must not be greater than yylength()!
|
||||
*/
|
||||
public void yypushback(int number) {
|
||||
if ( number > yylength() )
|
||||
zzScanError(ZZ_PUSHBACK_2BIG);
|
||||
|
||||
zzMarkedPos -= number;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Resumes scanning until the next regular expression is matched,
|
||||
* the end of input is encountered or an I/O-Error occurs.
|
||||
*
|
||||
* @return the next token
|
||||
* @exception java.io.IOException if any I/O-Error occurs
|
||||
*/
|
||||
public ParsedSymbol yylex() throws java.io.IOException, AsDocParseException {
|
||||
int zzInput;
|
||||
int zzAction;
|
||||
|
||||
// cached fields:
|
||||
int zzCurrentPosL;
|
||||
int zzMarkedPosL;
|
||||
int zzEndReadL = zzEndRead;
|
||||
char [] zzBufferL = zzBuffer;
|
||||
char [] zzCMapL = ZZ_CMAP;
|
||||
|
||||
int [] zzTransL = ZZ_TRANS;
|
||||
int [] zzRowMapL = ZZ_ROWMAP;
|
||||
int [] zzAttrL = ZZ_ATTRIBUTE;
|
||||
|
||||
while (true) {
|
||||
zzMarkedPosL = zzMarkedPos;
|
||||
|
||||
yychar+= zzMarkedPosL-zzStartRead;
|
||||
|
||||
zzAction = -1;
|
||||
|
||||
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
|
||||
|
||||
zzState = ZZ_LEXSTATE[zzLexicalState];
|
||||
|
||||
// set up zzAction for empty match case:
|
||||
int zzAttributes = zzAttrL[zzState];
|
||||
if ( (zzAttributes & 1) == 1 ) {
|
||||
zzAction = zzState;
|
||||
}
|
||||
|
||||
|
||||
zzForAction: {
|
||||
while (true) {
|
||||
|
||||
if (zzCurrentPosL < zzEndReadL) {
|
||||
zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
|
||||
zzCurrentPosL += Character.charCount(zzInput);
|
||||
}
|
||||
else if (zzAtEOF) {
|
||||
zzInput = YYEOF;
|
||||
break zzForAction;
|
||||
}
|
||||
else {
|
||||
// store back cached positions
|
||||
zzCurrentPos = zzCurrentPosL;
|
||||
zzMarkedPos = zzMarkedPosL;
|
||||
boolean eof = zzRefill();
|
||||
// get translated positions and possibly new buffer
|
||||
zzCurrentPosL = zzCurrentPos;
|
||||
zzMarkedPosL = zzMarkedPos;
|
||||
zzBufferL = zzBuffer;
|
||||
zzEndReadL = zzEndRead;
|
||||
if (eof) {
|
||||
zzInput = YYEOF;
|
||||
break zzForAction;
|
||||
}
|
||||
else {
|
||||
zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
|
||||
zzCurrentPosL += Character.charCount(zzInput);
|
||||
}
|
||||
}
|
||||
int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
|
||||
if (zzNext == -1) break zzForAction;
|
||||
zzState = zzNext;
|
||||
|
||||
zzAttributes = zzAttrL[zzState];
|
||||
if ( (zzAttributes & 1) == 1 ) {
|
||||
zzAction = zzState;
|
||||
zzMarkedPosL = zzCurrentPosL;
|
||||
if ( (zzAttributes & 8) == 8 ) break zzForAction;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// store back cached position
|
||||
zzMarkedPos = zzMarkedPosL;
|
||||
|
||||
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
||||
case 1:
|
||||
{
|
||||
}
|
||||
case 16: break;
|
||||
case 2:
|
||||
{ yybegin(STRING);
|
||||
}
|
||||
case 17: break;
|
||||
case 3:
|
||||
{ yybegin(CHARLITERAL);
|
||||
}
|
||||
case 18: break;
|
||||
case 4:
|
||||
{ yybegin(OIDENTIFIER);
|
||||
}
|
||||
case 19: break;
|
||||
case 5:
|
||||
{ yybegin(YYINITIAL); yyline++;
|
||||
}
|
||||
case 20: break;
|
||||
case 6:
|
||||
{ yybegin(YYINITIAL);
|
||||
}
|
||||
case 21: break;
|
||||
case 7:
|
||||
{ string.append(yytext());
|
||||
}
|
||||
case 22: break;
|
||||
case 8:
|
||||
{ yybegin(ADOC_TAG);
|
||||
String ret = string.toString().trim();
|
||||
string.setLength(0);
|
||||
return new ParsedSymbol(tagName == null ? SymbolType.DOC_BEGIN : SymbolType.DOC_MIDDLE, tagName, ret);
|
||||
}
|
||||
case 23: break;
|
||||
case 9:
|
||||
{ yybegin(ADOC);
|
||||
}
|
||||
case 24: break;
|
||||
case 10:
|
||||
{ tagName = yytext();
|
||||
}
|
||||
case 25: break;
|
||||
case 11:
|
||||
{ yybegin(YYINITIAL);
|
||||
String ret = string.toString().trim();
|
||||
string.setLength(0);
|
||||
return new ParsedSymbol(SymbolType.DOC_END, tagName, ret);
|
||||
}
|
||||
case 26: break;
|
||||
case 12:
|
||||
{ yybegin(YYINITIAL);
|
||||
String prevTag = tagName;
|
||||
tagName = null;
|
||||
return new ParsedSymbol(SymbolType.DOC_END, prevTag, "");
|
||||
}
|
||||
case 27: break;
|
||||
case 13:
|
||||
{ yybegin(ADOC);
|
||||
string.setLength(0);
|
||||
tagName = null;
|
||||
}
|
||||
case 28: break;
|
||||
case 14:
|
||||
{ yybegin(XMLCOMMENT);
|
||||
}
|
||||
case 29: break;
|
||||
case 15:
|
||||
{ yybegin(XMLCDATA);
|
||||
}
|
||||
case 30: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
{
|
||||
return new ParsedSymbol(SymbolType.EOF, null, "");
|
||||
}
|
||||
}
|
||||
else {
|
||||
zzScanError(ZZ_NO_MATCH);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class ActionScriptDocParser {
|
||||
public List<AsDocComment> parse(String str) {
|
||||
List<AsDocComment> comments = new ArrayList<>();
|
||||
ActionScriptDocLexer lexer = new ActionScriptDocLexer(str);
|
||||
try {
|
||||
ParsedSymbol s = lexer.yylex();
|
||||
String startText = null;
|
||||
List<AsDocTag> tags = new ArrayList<>();
|
||||
while(s.type != SymbolType.EOF) {
|
||||
if (s.type == SymbolType.DOC_BEGIN) {
|
||||
startText = s.text;
|
||||
}
|
||||
if (s.type == SymbolType.DOC_MIDDLE || (s.type == SymbolType.DOC_END && s.tag != null)) {
|
||||
tags.add(new AsDocTag(s.tag, s.text));
|
||||
}
|
||||
if (s.type == SymbolType.DOC_END) {
|
||||
comments.add(new AsDocComment(startText, tags));
|
||||
startText = null;
|
||||
tags = new ArrayList<>();
|
||||
}
|
||||
s = lexer.yylex();
|
||||
}
|
||||
} catch (IOException | AsDocParseException ex) {
|
||||
|
||||
}
|
||||
return comments;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class AsDocComment {
|
||||
public String startText;
|
||||
public List<AsDocTag> tags;
|
||||
|
||||
public AsDocComment(String startText, List<AsDocTag> tags) {
|
||||
this.startText = startText;
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (startText != null) {
|
||||
sb.append(startText);
|
||||
sb.append("\n");
|
||||
}
|
||||
for (AsDocTag tag : tags) {
|
||||
sb.append("@");
|
||||
sb.append(tag.tagName);
|
||||
sb.append(" ");
|
||||
sb.append(tag.tagText);
|
||||
sb.append("\n");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class AsDocParseException extends Exception {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class AsDocTag {
|
||||
public String tagName;
|
||||
public String tagText;
|
||||
|
||||
public AsDocTag(String tagName, String tagText) {
|
||||
this.tagName = tagName;
|
||||
this.tagText = tagText;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class ParsedSymbol {
|
||||
public SymbolType type;
|
||||
public String tag;
|
||||
public String text;
|
||||
|
||||
public ParsedSymbol(SymbolType type, String tag, String text) {
|
||||
this.type = type;
|
||||
this.tag = tag;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public enum SymbolType {
|
||||
DOC_BEGIN,
|
||||
DOC_MIDDLE,
|
||||
DOC_END,
|
||||
EOF
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* Parsing AsDoc.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.asdoc;
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.graph.model;
|
||||
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
import com.jpexs.decompiler.graph.TypeItem;
|
||||
|
||||
/**
|
||||
* AsDoc comment item. Can contain tags starting with at sign.
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class DocCommentItem extends GraphTargetItem {
|
||||
|
||||
/**
|
||||
* Comment lines.
|
||||
*/
|
||||
private final String[] commentLines;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param comment Comment
|
||||
*/
|
||||
public DocCommentItem(String comment) {
|
||||
super(null, null, null, NOPRECEDENCE);
|
||||
this.commentLines = new String[]{comment};
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param commentLines Comment lines
|
||||
*/
|
||||
public DocCommentItem(String[] commentLines) {
|
||||
super(null, null, null, NOPRECEDENCE);
|
||||
this.commentLines = commentLines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) {
|
||||
int commentLinesCount = 0;
|
||||
for (int i = 0; i < commentLines.length; i++) {
|
||||
if (commentLines[i] == null) {
|
||||
continue;
|
||||
}
|
||||
commentLinesCount++;
|
||||
}
|
||||
writer.append("/** ");
|
||||
writer.newLine();
|
||||
for (int i = 0; i < commentLines.length; i++) {
|
||||
if (commentLines[i] == null) {
|
||||
continue;
|
||||
}
|
||||
writer.append(" * ");
|
||||
writer.append(commentLines[i]);
|
||||
writer.newLine();
|
||||
}
|
||||
writer.append(" */");
|
||||
writer.newLine();
|
||||
return writer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets comment lines.
|
||||
* @return Comment lines
|
||||
*/
|
||||
public String[] getCommentLines() {
|
||||
return commentLines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needsSemicolon() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasReturnValue() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem returnType() {
|
||||
return TypeItem.UNBOUNDED;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user