/* The following code was generated by JFlex 1.4.3 on 12/07/15 18:43 */ /* * Copyright 2010 Jean-Paul Balabanian and Yngve Devik Hammersland * * This file is part of glsl4idea. * * Glsl4idea 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 of * the License, or (at your option) any later version. * * Glsl4idea 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 General Public License * along with glsl4idea. If not, see <http://www.gnu.org/licenses/>. */ package glslplugin.lang.scanner; import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; import static glslplugin.lang.elements.GLSLTokenTypes.*; import java.util.List; import java.util.ArrayList; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 * on 12/07/15 18:43 from the specification file * <tt>/home/abigail/code/glsl4idea/src/glslplugin/lang/scanner/GLSL.flex</tt> */ class GLSLFlexLexer implements FlexLexer { /** initial size of the lookahead buffer */ private static final int ZZ_BUFFERSIZE = 16384; /** lexical states */ public static final int PREPROCESSOR = 2; public static final int YYINITIAL = 0; /** * 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 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = "\11\0\1\7\1\6\1\0\1\7\1\5\22\0\1\7\1\107\1\25"+ "\1\45\1\0\1\100\1\103\1\0\1\74\1\75\1\23\1\77\1\113"+ "\1\21\1\17\1\22\1\11\1\54\1\50\1\51\1\52\3\2\2\1"+ "\1\111\1\112\1\101\1\76\1\102\1\110\1\0\1\60\1\3\1\56"+ "\1\55\1\20\1\16\5\4\1\15\1\62\4\4\1\57\1\63\1\4"+ "\1\10\2\4\1\12\2\4\1\72\1\24\1\73\1\104\1\53\1\0"+ "\1\37\1\46\1\47\1\26\1\27\1\14\1\40\1\64\1\30\1\4"+ "\1\66\1\13\1\41\1\31\1\35\1\36\1\4\1\34\1\33\1\43"+ "\1\32\1\44\1\65\1\42\1\61\1\67\1\70\1\105\1\71\1\106"+ "\uff81\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 = "\2\0\1\1\1\2\1\3\1\4\1\2\2\3\1\5"+ "\1\6\1\7\1\10\1\1\16\3\1\11\4\3\1\12"+ "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+ "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ "\1\33\1\34\1\35\2\36\1\4\1\3\1\1\6\3"+ "\1\1\1\37\1\0\1\40\1\0\3\40\2\2\7\3"+ "\1\41\1\42\1\43\1\44\1\45\1\46\2\4\2\3"+ "\1\47\5\3\1\50\1\3\1\51\56\3\1\52\1\53"+ "\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+ "\1\64\1\65\1\66\1\67\1\70\1\3\1\0\1\71"+ "\5\3\1\72\3\3\1\73\1\74\1\40\7\3\1\75"+ "\2\3\1\0\12\3\1\76\31\3\1\77\4\3\1\100"+ "\34\3\1\101\1\102\14\3\1\103\2\3\1\104\3\3"+ "\1\44\5\3\1\105\14\3\1\106\30\3\1\107\1\110"+ "\1\111\1\3\1\112\1\3\1\113\1\114\1\115\1\3"+ "\1\116\3\3\1\117\6\3\1\120\3\3\1\121\1\3"+ "\1\122\1\123\11\3\1\124\4\3\1\125\1\126\1\127"+ "\1\130\1\131\1\132\2\3\1\133\4\3\1\134\1\135"+ "\1\136\4\3\1\137\1\140\1\141\16\3\1\142\13\3"+ "\1\143\1\144\1\145\1\146\1\3\1\147\2\3\1\150"+ "\1\3\1\151\1\3\1\152\1\153\1\3\1\154\1\3"+ "\1\155\2\3\1\156\2\3\1\157\3\3\1\100\13\3"+ "\1\160\1\161\1\162\1\163\1\164\3\3\1\165\5\3"+ "\1\166\1\167\1\170\1\171\1\172\1\173\1\174\1\175"+ "\1\176\3\3\1\177\4\3\1\200\1\3\1\201\1\202"+ "\1\3\1\203\1\204\1\205\1\206\1\207\1\210\1\211"+ "\1\212\1\213\1\214\1\215\4\3\3\216\2\3\1\217"+ "\4\3\1\220\3\3\1\221\1\3\1\222\4\3\1\223"+ "\1\3\1\224\14\3\1\225\1\226\3\3\1\227\1\230"+ "\1\231\1\232\2\3\1\233\5\3\3\216\1\3\1\234"+ "\1\3\1\235\1\236\1\237\4\3\1\240\14\3\1\241"+ "\4\3\1\242\1\216\3\3"; private static int [] zzUnpackAction() { int [] result = new int[593]; 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\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"+ "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474"+ "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u06d4"+ "\0\u0720\0\u076c\0\u07b8\0\u0804\0\230\0\u0850\0\u089c\0\u08e8"+ "\0\u0934\0\230\0\230\0\230\0\230\0\230\0\230\0\u0980"+ "\0\u09cc\0\u0a18\0\u0a64\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\230"+ "\0\u0be0\0\230\0\230\0\230\0\230\0\u0c2c\0\230\0\u0c78"+ "\0\u0cc4\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0ed8"+ "\0\u0f24\0\230\0\u0f70\0\230\0\u0fbc\0\u1008\0\u1054\0\u10a0"+ "\0\u10ec\0\u1138\0\u1184\0\u11d0\0\u121c\0\u1268\0\u12b4\0\u1300"+ "\0\u134c\0\230\0\230\0\u1398\0\u13e4\0\230\0\230\0\u1430"+ "\0\230\0\u147c\0\u14c8\0\u1514\0\u1560\0\u15ac\0\u15f8\0\u1644"+ "\0\u1690\0\u0130\0\u16dc\0\u1728\0\u1774\0\u17c0\0\u180c\0\u1858"+ "\0\u18a4\0\u18f0\0\u193c\0\u1988\0\u19d4\0\u1a20\0\u1a6c\0\u1ab8"+ "\0\u1b04\0\u1b50\0\u1b9c\0\u1be8\0\u1c34\0\u1c80\0\u1ccc\0\u1d18"+ "\0\u1d64\0\u1db0\0\u1dfc\0\u1e48\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78"+ "\0\u1fc4\0\u2010\0\u205c\0\u20a8\0\u20f4\0\u2140\0\u218c\0\u21d8"+ "\0\u2224\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0\0\u23ec\0\u2438"+ "\0\u2484\0\u24d0\0\230\0\230\0\230\0\230\0\230\0\u251c"+ "\0\230\0\u2568\0\230\0\230\0\230\0\230\0\230\0\230"+ "\0\230\0\u25b4\0\u0d10\0\230\0\u2600\0\u264c\0\u2698\0\u26e4"+ "\0\u2730\0\u277c\0\u27c8\0\u2814\0\u2860\0\230\0\230\0\u28ac"+ "\0\u28f8\0\u2944\0\u2990\0\u29dc\0\u2a28\0\u2a74\0\u2ac0\0\u0130"+ "\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4\0\u2d20"+ "\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u2e9c\0\u2ee8\0\u2f34\0\u2f80"+ "\0\u2fcc\0\u3018\0\u3064\0\u30b0\0\u30fc\0\u3148\0\u3194\0\u31e0"+ "\0\u322c\0\u3278\0\u32c4\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440"+ "\0\u348c\0\u34d8\0\u3524\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0"+ "\0\u36ec\0\u3738\0\u3784\0\u37d0\0\u0130\0\u381c\0\u3868\0\u38b4"+ "\0\u3900\0\u394c\0\u3998\0\u39e4\0\u3a30\0\u3a7c\0\u3ac8\0\u3b14"+ "\0\u3b60\0\u3bac\0\u3bf8\0\u3c44\0\u3c90\0\u3cdc\0\u3d28\0\u3d74"+ "\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c\0\u3f88\0\u3fd4"+ "\0\u4020\0\230\0\230\0\u406c\0\u40b8\0\u4104\0\u4150\0\u419c"+ "\0\u41e8\0\u4234\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0\0\u0130"+ "\0\u43fc\0\u4448\0\u0130\0\u4494\0\u44e0\0\u452c\0\230\0\u4578"+ "\0\u45c4\0\u4610\0\u465c\0\u46a8\0\u0130\0\u46f4\0\u4740\0\u478c"+ "\0\u47d8\0\u4824\0\u4870\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec"+ "\0\u4a38\0\u0130\0\u4a84\0\u4ad0\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00"+ "\0\u4c4c\0\u4c98\0\u4ce4\0\u4d30\0\u4d7c\0\u4dc8\0\u4e14\0\u4e60"+ "\0\u4eac\0\u4ef8\0\u4f44\0\u4f90\0\u4fdc\0\u5028\0\u5074\0\u50c0"+ "\0\u510c\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u0130\0\u52d4"+ "\0\u0130\0\u0130\0\u0130\0\u5320\0\u0130\0\u536c\0\u53b8\0\u5404"+ "\0\u0130\0\u5450\0\u549c\0\u54e8\0\u5534\0\u5580\0\u55cc\0\u0130"+ "\0\u5618\0\u5664\0\u56b0\0\u0130\0\u56fc\0\u0130\0\u0130\0\u5748"+ "\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4\0\u5910\0\u595c\0\u59a8"+ "\0\u0130\0\u59f4\0\u5a40\0\u5a8c\0\u5ad8\0\u5b24\0\u5b70\0\u5bbc"+ "\0\u0130\0\u0130\0\u0130\0\u5c08\0\u5c54\0\u0130\0\u5ca0\0\u5cec"+ "\0\u5d38\0\u5d84\0\u0130\0\u0130\0\u0130\0\u5dd0\0\u5e1c\0\u5e68"+ "\0\u5eb4\0\u0130\0\u0130\0\u0130\0\u5f00\0\u5f4c\0\u5f98\0\u5fe4"+ "\0\u6030\0\u607c\0\u60c8\0\u6114\0\u6160\0\u61ac\0\u61f8\0\u6244"+ "\0\u6290\0\u62dc\0\u0130\0\u6328\0\u6374\0\u63c0\0\u640c\0\u6458"+ "\0\u64a4\0\u64f0\0\u653c\0\u6588\0\u65d4\0\u6620\0\u0130\0\u0130"+ "\0\u0130\0\u0130\0\u666c\0\u0130\0\u66b8\0\u6704\0\u0130\0\u6750"+ "\0\u0130\0\u679c\0\u0130\0\u0130\0\u67e8\0\u0130\0\u6834\0\u0130"+ "\0\u6880\0\u68cc\0\u0130\0\u6918\0\u6964\0\u0130\0\u69b0\0\u69fc"+ "\0\u6a48\0\u6a94\0\u6ae0\0\u6b2c\0\u6b78\0\u6bc4\0\u6c10\0\u6c5c"+ "\0\u6ca8\0\u6cf4\0\u6d40\0\u6d8c\0\u6dd8\0\u6e24\0\u0130\0\u0130"+ "\0\u0130\0\u0130\0\u6e70\0\u6ebc\0\u6f08\0\u0130\0\u6f54\0\u6fa0"+ "\0\u6fec\0\u7038\0\u7084\0\u0130\0\u0130\0\u0130\0\u0130\0\u0130"+ "\0\u0130\0\u0130\0\u0130\0\u0130\0\u70d0\0\u711c\0\u7168\0\u0130"+ "\0\u71b4\0\u7200\0\u724c\0\u7298\0\u72e4\0\u7330\0\u0130\0\u0130"+ "\0\u737c\0\u0130\0\u0130\0\u0130\0\u0130\0\u0130\0\u0130\0\u0130"+ "\0\u0130\0\u0130\0\u0130\0\u0130\0\u73c8\0\u7414\0\u7460\0\u74ac"+ "\0\u74f8\0\u0130\0\u7544\0\u7590\0\u75dc\0\u0130\0\u7628\0\u7674"+ "\0\u76c0\0\u770c\0\u0130\0\u7758\0\u77a4\0\u77f0\0\u0130\0\u783c"+ "\0\u0130\0\u7888\0\u78d4\0\u7920\0\u796c\0\u0130\0\u79b8\0\u0130"+ "\0\u7a04\0\u7a50\0\u7a9c\0\u7ae8\0\u7b34\0\u7b80\0\u7bcc\0\u7c18"+ "\0\u7c64\0\u7cb0\0\u7cfc\0\u7d48\0\u0130\0\u0130\0\u7d94\0\u7de0"+ "\0\u7e2c\0\u0130\0\u0130\0\u0130\0\u0130\0\u7e78\0\u7ec4\0\u0130"+ "\0\u7f10\0\u7f5c\0\u7fa8\0\u7ff4\0\u8040\0\u808c\0\u80d8\0\u8124"+ "\0\u8170\0\u0130\0\u81bc\0\u0130\0\u0130\0\u0130\0\u8208\0\u8254"+ "\0\u82a0\0\u82ec\0\u0130\0\u8338\0\u8384\0\u83d0\0\u841c\0\u8468"+ "\0\u84b4\0\u8500\0\u854c\0\u8598\0\u85e4\0\u8630\0\u867c\0\u0130"+ "\0\u86c8\0\u8714\0\u8760\0\u87ac\0\u0130\0\u87f8\0\u8844\0\u8890"+ "\0\u88dc"; private static int [] zzUnpackRowMap() { int [] result = new int[593]; 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\3\2\4\2\5\3\6\1\5\1\7\1\5\1\10"+ "\1\11\2\5\1\12\1\5\1\13\1\14\1\15\1\16"+ "\1\3\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ "\1\26\1\27\1\30\1\31\1\32\1\5\1\33\1\34"+ "\1\35\1\36\1\37\3\4\1\5\1\4\7\5\1\40"+ "\1\41\2\5\1\42\1\43\1\44\1\45\1\46\1\47"+ "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ "\1\60\1\61\1\62\1\63\1\64\1\65\1\3\2\4"+ "\2\5\1\66\1\67\1\70\1\5\1\7\1\5\1\71"+ "\1\11\2\5\1\12\1\5\1\13\1\14\1\15\1\16"+ "\1\72\1\73\1\74\1\75\1\22\1\76\1\24\1\25"+ "\1\26\1\77\1\30\1\31\1\32\1\5\1\33\1\100"+ "\1\101\1\36\1\37\3\4\1\5\1\4\7\5\1\40"+ "\1\41\2\5\1\42\1\43\1\44\1\45\1\46\1\47"+ "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ "\1\60\1\61\1\62\1\63\1\64\1\65\115\0\2\4"+ "\5\0\1\102\1\4\1\0\1\103\1\104\1\105\1\104"+ "\1\106\1\107\6\0\1\107\2\0\1\102\15\0\3\4"+ "\1\0\1\4\40\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\22\5\31\0\3\6\105\0\1\110"+ "\1\111\5\0\1\102\1\111\1\112\1\103\1\104\1\105"+ "\1\104\1\106\1\107\6\0\1\107\2\0\1\102\7\0"+ "\1\112\5\0\3\111\1\0\1\111\40\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\7\5\1\113\1\5\1\114"+ "\5\5\1\0\22\5\25\0\4\5\3\0\3\5\1\115"+ "\3\5\1\0\1\5\5\0\2\5\1\116\4\5\1\117"+ "\1\5\1\120\4\5\1\121\1\0\22\5\25\0\2\106"+ "\6\0\1\106\36\0\3\106\1\0\1\106\60\0\1\122"+ "\54\0\1\123\37\0\1\124\1\125\52\0\1\126\113\0"+ "\1\127\22\0\1\130\1\131\106\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\132\1\133\4\5\1\134"+ "\3\5\1\135\2\5\1\136\1\0\22\5\25\0\4\5"+ "\3\0\3\5\1\137\3\5\1\0\1\5\5\0\3\5"+ "\1\140\10\5\1\141\2\5\1\0\22\5\25\0\4\5"+ "\3\0\4\5\1\142\2\5\1\0\1\5\5\0\2\5"+ "\1\143\1\144\1\5\1\145\5\5\1\146\2\5\1\147"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\7\5\1\150\1\5\1\151\5\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\152\1\153\1\5\1\154\10\5\1\155\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\156\1\5\1\157\4\5\1\160\1\5\1\161\1\5"+ "\1\162\1\5\1\0\16\5\1\163\1\164\2\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\1\5\1\165"+ "\15\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\4\5\1\166\12\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\4\5\1\167"+ "\1\5\1\170\2\5\1\171\5\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\5\5\1\172"+ "\7\5\1\173\1\5\1\0\1\5\1\174\20\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\7\5\1\175"+ "\7\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\176\7\5\1\177\5\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\200\4\5\1\201\10\5\1\0\13\5\1\202"+ "\2\5\1\203\3\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\204\5\5\1\205\1\5\1\206"+ "\5\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\4\5\1\207\1\5\1\210\1\211\6\5"+ "\1\212\1\0\22\5\25\0\4\5\3\0\3\5\1\213"+ "\3\5\1\0\1\5\5\0\1\5\1\214\5\5\1\215"+ "\1\5\1\216\5\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\2\5\1\217\6\5\1\220"+ "\4\5\1\121\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\221\10\5\1\0\16\5"+ "\1\222\3\5\122\0\1\223\113\0\1\224\1\225\112\0"+ "\1\226\113\0\1\227\2\0\1\230\110\0\1\231\3\0"+ "\1\232\107\0\1\233\4\0\1\234\106\0\1\235\5\0"+ "\1\236\105\0\1\237\6\0\1\240\104\0\1\241\23\0"+ "\1\67\114\0\1\70\105\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\2\5\1\242\4\5\1\113\1\5\1\114"+ "\5\5\1\0\22\5\24\0\5\243\2\0\16\243\1\244"+ "\66\243\1\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\245\1\133\4\5\1\134\3\5\1\135\2\5"+ "\1\136\1\0\22\5\25\0\4\5\3\0\3\5\1\246"+ "\3\5\1\0\1\5\5\0\3\5\1\247\2\5\1\250"+ "\5\5\1\251\2\5\1\0\22\5\25\0\4\5\3\0"+ "\4\5\1\252\2\5\1\0\1\5\5\0\2\5\1\143"+ "\1\144\1\5\1\145\5\5\1\146\2\5\1\147\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\2\5\1\152\1\253\1\5\1\154\10\5\1\155\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\167\1\5\1\254\2\5\1\171\5\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\255\5\5\1\205\1\5\1\206\5\5\1\0"+ "\22\5\71\0\1\256\62\0\1\257\115\0\1\257\76\0"+ "\2\106\6\0\1\106\1\0\1\103\1\104\1\105\1\104"+ "\1\0\1\107\6\0\1\107\20\0\3\106\1\0\1\106"+ "\40\0\2\260\6\0\1\260\1\0\1\103\1\104\1\105"+ "\1\104\2\0\1\260\26\0\3\260\1\0\1\260\22\0"+ "\1\260\15\0\2\110\6\0\1\110\1\0\1\103\1\104"+ "\1\105\1\104\1\106\1\107\6\0\1\107\20\0\3\110"+ "\1\0\1\110\40\0\1\110\1\111\5\0\1\102\1\111"+ "\1\0\1\103\1\104\1\105\1\104\1\106\1\107\6\0"+ "\1\107\2\0\1\102\15\0\3\111\1\0\1\111\40\0"+ "\3\112\4\0\1\102\1\112\2\0\1\112\1\0\1\112"+ "\1\0\1\112\5\0\2\112\2\0\1\102\4\0\1\112"+ "\6\0\5\112\1\0\3\112\1\0\1\112\34\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\3\5\1\261\13\5"+ "\1\0\17\5\1\262\2\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\13\5\1\263\6\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\264\1\5\1\265\5\5\1\0\22\5\25\0\4\5"+ "\3\0\3\5\1\266\3\5\1\0\1\5\5\0\14\5"+ "\1\267\2\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\270\10\5\1\0\22\5"+ "\25\0\4\5\3\0\3\5\1\271\3\5\1\0\1\5"+ "\5\0\17\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\272\15\5\1\0\22\5"+ "\24\0\5\124\2\0\105\124\23\125\1\273\70\125\6\0"+ "\1\131\106\0\4\5\3\0\4\5\1\274\2\5\1\0"+ "\1\5\5\0\17\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\5\5\1\275\11\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\276\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\11\5\1\277\5\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\300\15\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\5\5\1\301\11\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\172\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\15\5\1\302\1\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\13\5\1\146\3\5\1\0\22\5\25\0\4\5\3\0"+ "\3\5\1\303\3\5\1\0\1\5\5\0\7\5\1\304"+ "\1\305\4\5\1\306\1\307\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\11\5\1\310\5\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\311\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\312\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\313\5\5\1\314\6\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\13\5"+ "\1\315\3\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\3\5\1\316\7\5\1\146\3\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\317\2\5\1\320\11\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\321\6\5\1\310\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\322\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\21\5\1\323\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\10\5\1\324\6\5\1\0"+ "\1\325\21\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\13\5\1\326\3\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\7\5\1\327\7\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\6\5\1\330\2\5\1\331\5\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\332\1\5\1\333\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\334\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\5\5\1\335\3\5\1\336\3\5\1\337\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\340\1\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\1\341"+ "\21\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\342\15\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\6\5\1\343\6\5\1\344"+ "\1\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\13\5\1\345\3\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\7\5\1\346"+ "\5\5\1\347\1\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\15\5\1\350\1\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\15\5\1\351\1\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\352\16\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\353\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\13\5\1\354\3\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\4\5"+ "\1\355\12\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\10\5\1\356\6\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\357\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\1\5\1\360\20\5"+ "\25\0\4\5\3\0\3\5\1\361\3\5\1\0\1\5"+ "\5\0\2\5\1\362\14\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\363\10\5"+ "\1\0\22\5\25\0\4\5\3\0\4\5\1\364\2\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\365\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\7\5\1\366\7\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\367\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\370\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\3\5\1\371\13\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\372\7\5\1\373\3\5\1\0\16\5"+ "\1\374\3\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\5\5\1\375\11\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\12\5\1\376\4\5"+ "\1\0\22\5\25\0\4\5\3\0\3\5\1\377\3\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\u0100\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\u0101\14\5\1\0\22\5\122\0\1\u0102"+ "\113\0\1\u0103\16\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\u0104\13\5\1\0\22\5\25\0\4\5"+ "\3\0\4\5\1\u0105\2\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\u0106\2\5\1\u0107\11\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\1\u0108"+ "\3\5\1\172\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\6\5\1\u0109\10\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\15\5\1\u010a\1\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\u010b\2\5\1\u010c\13\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\u010d\1\5\1\317\2\5\1\320\11\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\342\7\5\1\u010e\5\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\6\5\1\u010f"+ "\10\5\1\0\1\5\1\360\20\5\25\0\2\260\6\0"+ "\1\260\1\0\1\103\1\104\1\105\1\104\31\0\3\260"+ "\1\0\1\260\40\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\12\5\1\345\4\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\10\5\1\u0110\6\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\7\5\1\u0111\7\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\11\5\1\u0112\5\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\u0113\1\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u0114\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0115\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\5\5\1\355\11\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u0116\20\5\24\0\22\125"+ "\1\u0117\1\273\70\125\1\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\11\5\1\u0118\5\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\17\5\1\0"+ "\1\5\1\u0119\20\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\1\u011a\21\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u011b\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u011c\20\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u011d\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u011e\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\u011f\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\4\5\1\u0120\12\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\4\5\1\u0121\12\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0122\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\11\5\1\u0123\5\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\13\5\1\u0124\3\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\12\5\1\u0125\4\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u0126\20\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\3\5\1\u0127\13\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0128\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u0129\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\u012a\1\5\1\0\22\5\25\0\4\5"+ "\3\0\4\5\1\u012b\2\5\1\0\1\5\5\0\7\5"+ "\1\u012c\7\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\2\5\1\u012d\14\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\3\5"+ "\1\261\13\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\1\5\1\u012e\20\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\1\5"+ "\1\u012f\15\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\u0130\15\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u0131\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\10\5\1\u0132\6\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\u0133\7\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\4\5\1\u0134\12\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\u0135\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\u0121\10\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u0136\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\15\5\1\u0137\1\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\u0138\5\5\1\u0139\1\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\u013a\16\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\u013b\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\10\5\1\305\6\5\1\0"+ "\22\5\25\0\4\5\3\0\3\5\1\u0135\3\5\1\0"+ "\1\5\5\0\17\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\1\5\1\u013c"+ "\20\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\15\5\1\u013d\1\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\1\5\1\u013e"+ "\20\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\13\5\1\u013f\3\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\6\5\1\u0140\10\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\2\5\1\u0141\14\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\7\5\1\345\7\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\2\5\1\u0142\14\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\2\5\1\u0143"+ "\1\u0144\1\u0145\15\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\10\5\1\u0146\6\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\1\5\1\u0147"+ "\15\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\u0148\15\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\5\5\1\345"+ "\11\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\2\5\1\u0149\1\u014a\1\u014b"+ "\15\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\11\5\1\u014c\5\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\u014d\16\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\13\5\1\u014e\6\5\25\0\4\5\3\0\4\5"+ "\1\u014f\2\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\11\5"+ "\1\u0150\5\5\1\0\22\5\25\0\4\5\3\0\3\5"+ "\1\u0151\3\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\1\5\1\u0152\20\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\5\5\1\357\11\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\u0153\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\5\5\1\u0154\7\5\1\u0155\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\13\5\1\u0156\3\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u0157\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0158\13\5\1\345\1\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\16\5\1\u0159\3\5\25\0\4\5\3\0\4\5"+ "\1\345\2\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\u015a\1\5\1\0\22\5\25\0\4\5\3\0\3\5"+ "\1\u015b\3\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\1\5"+ "\1\u015c\15\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\2\5\1\u015d\6\5\1\u0118\5\5"+ "\1\0\22\5\25\0\4\5\3\0\4\5\1\u015e\2\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u015f\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\u0160\14\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\7\5\1\u0161\7\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0162\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u0163\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\u0164\16\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\5\1\u0165\15\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\12\5\1\u0166\4\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\5\5\1\u0167\11\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\u0168\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\15\5\1\u0169\1\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\1\5\1\u016a\15\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\345\16\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\2\5\3\345\15\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\4\5\1\u016b\12\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\11\5"+ "\1\u016c\5\5\1\0\22\5\25\0\4\5\3\0\3\5"+ "\1\u016d\3\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\2\5\1\u016e\1\u016f\1\u0170\15\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\2\5"+ "\1\u0171\1\u0172\1\u0173\15\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\u0174\10\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\3\5"+ "\1\u0175\13\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\15\5\1\u0176\1\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\345\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\u0177\10\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u0178\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\10\5\1\u0179\6\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\1\5"+ "\1\u017a\15\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\2\5\1\u017b\1\u017c"+ "\1\u017d\15\5\25\0\4\5\3\0\3\5\1\303\3\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\u017e\10\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\5\5\1\u017f\11\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\7\5\1\u0180\7\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\345\13\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\12\5\1\u0181\4\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\2\5\1\u0182\1\u0183\1\u0184\15\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\377\7\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\u0185\10\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\7\5"+ "\1\u0186\7\5\1\0\22\5\25\0\4\5\3\0\3\5"+ "\1\u0187\3\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\u0188\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\1\5\1\u0189\20\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u018a\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\u018b\15\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\1\5\1\u018c\20\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\4\5\1\u018d\12\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u018e\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\7\5\1\u018f\7\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u0190\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\2\5\1\u0191\14\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u0192\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\16\5\1\u0193\3\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u0194\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\2\5\1\u0195\14\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\16\5"+ "\1\u0175\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\4\5\1\u0196\12\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\14\5\1\u0197"+ "\2\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\14\5\1\u0198\2\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\14\5\1\u0199"+ "\2\5\1\0\22\5\25\0\4\5\3\0\3\5\1\u019a"+ "\3\5\1\0\1\5\5\0\17\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\1\u019b\16\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\u019c\1\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\u019d\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u019e\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\20\5"+ "\1\u019f\1\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\2\5\1\u01a0\1\u01a1\1\u01a2\15\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u01a3\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\15\5\1\u01a4\1\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u01a5\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\7\5\1\u012c\7\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u01a6\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\10\5\1\u01a7\6\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\1\5"+ "\1\u01a8\15\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\u01a9\15\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\3\5"+ "\1\u01aa\13\5\1\0\22\5\25\0\4\5\3\0\4\5"+ "\1\u01ab\2\5\1\0\1\5\5\0\17\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\6\5"+ "\1\u01ac\10\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\3\5\1\u01ad\2\5\1\u0174\10\5"+ "\1\0\22\5\25\0\4\5\3\0\4\5\1\u01ae\2\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u01af\15\5"+ "\1\0\22\5\25\0\4\5\3\0\4\5\1\u01b0\2\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\13\5\1\u01b1\3\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\u01b2\14\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u01b3\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\6\5\1\345\10\5\1\0\22\5\25\0\4\5"+ "\3\0\3\5\1\u01b4\3\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\6\5\1\u01b5\10\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u01b6\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\14\5\1\u01b7\2\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\14\5\1\u01b8\2\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\14\5\1\u01b9\2\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\3\5\1\u01ba\13\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\345\15\5\1\0\22\5\25\0\4\5"+ "\3\0\4\5\1\u01bb\2\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\2\5\1\u01bc\14\5\1\0\22\5\25\0\4\5"+ "\3\0\3\5\1\u01bd\3\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\2\5\1\u01be\1\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\2\5\1\u01bf\1\u01c0"+ "\2\5\1\u01c1\1\5\1\u01c2\11\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\5\5\1\u01c3\11\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\10\5\1\u01bb\6\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\6\5\1\u01c4\10\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\3\5\1\267\13\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\10\5\1\345\6\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\4\5\1\u01c5\12\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\5\1\u01c6\15\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\17\5\1\0\16\5\1\u01c7\3\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\15\5\1\u01c8\1\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\17\5\1\0\1\5\1\345\20\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\u01c9\16\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\16\5\1\u01ca\3\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\6\5\1\u01cb\10\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u01cc\14\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\3\5\1\u01cd\13\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\3\5"+ "\1\u01ce\13\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\5\5\1\u01cf\11\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\15\5"+ "\1\u01d0\1\5\1\0\22\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\1\5\1\u01d1\20\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\1\u01d2\21\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\13\5\1\u01d3\3\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\17\5\1\0"+ "\2\5\1\u01d4\1\u01d5\1\u01d6\15\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\2\5\1\u01d7"+ "\1\u01d8\1\u01d9\15\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\2\5\1\u01da\1\u01db\1\u01dc"+ "\15\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\11\5\1\u01dd\5\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\5\1\377\15\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\2\5\1\u01de\14\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\3\5\1\u01df\13\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\6\5\1\u01e0\10\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\7\5\1\u01e1\7\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\3\5\1\u01e2\13\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\5\1\u01e3\15\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\7\5\1\u01e4\7\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\5\1\u01e5\15\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\5\5\1\u01e6\11\5\1\0\22\5\25\0\4\5\3\0"+ "\4\5\1\u01e7\2\5\1\0\1\5\5\0\17\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\11\5\1\u01e8\5\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\7\5\1\u01e9\7\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\15\5\1\u01ea\1\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\1\u01eb\16\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\17\5"+ "\1\0\2\5\1\u01ec\1\u01ed\1\u01ee\15\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\2\5"+ "\1\u01ef\1\u01f0\1\u01f1\15\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\2\5\1\u01f2\1\u01f3"+ "\1\u01f4\15\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\u01f5\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\11\5\1\u01cb\5\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\u01f6\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u01f7\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\4\5\1\u01f8\12\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\7\5"+ "\1\u01f9\12\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\7\5\1\u01fa\12\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\7\5"+ "\1\u01fb\12\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\4\5\1\u01fc\12\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\10\5\1\u01fd\6\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\13\5\1\u01fe\3\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u01ff\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\6\5\1\u0200\10\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\1\5"+ "\1\u0175\20\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u0201\20\5\25\0\4\5"+ "\3\0\3\5\1\u0202\3\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0203\1\u0204\14\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\2\5\1\u0156"+ "\14\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\5\5\1\u0205\14\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\4\5\1\u0206"+ "\12\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\10\5\1\u0207\6\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\15\5\1\u0175"+ "\1\5\1\0\22\5\25\0\4\5\3\0\3\5\1\u0208"+ "\3\5\1\0\1\5\5\0\17\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\12\5\1\u0209"+ "\4\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\2\5\1\u020a\14\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\4\5\1\u020b"+ "\12\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\3\5\1\u020c\13\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\3\5\1\u020d"+ "\13\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\u020e\16\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\u020f\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\u0210\13\5\1\0\22\5\25\0\4\5"+ "\3\0\3\5\1\345\3\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\u0211\13\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\u017a\10\5"+ "\1\0\22\5\25\0\4\5\3\0\4\5\1\u0212\2\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\11\5"+ "\1\u0213\1\u0214\1\5\1\u0215\5\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\12\5\1\u0214"+ "\7\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\17\5\1\0\1\u0216\21\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\1\5\1\u0217\15\5\1\0\22\5"+ "\25\0\4\5\3\0\7\5\1\0\1\5\5\0\2\5"+ "\1\u0218\14\5\1\0\22\5\25\0\2\5\1\u01be\1\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\2\5"+ "\1\u0219\1\u021a\2\5\1\u021b\1\5\1\u021c\11\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\15\5\1\u021d"+ "\1\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\13\5\1\u021e\6\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\7\5\1\u021f"+ "\7\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\4\5\1\u0220\12\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\15\5\1\u0221"+ "\1\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\u0222\15\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\1\u0223\16\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0224\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u0225\1\5"+ "\1\0\22\5\25\0\4\5\3\0\3\5\1\u0226\3\5"+ "\1\0\1\5\5\0\17\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\7\5\1\u0227\7\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\u0228\1\5\1\0\22\5\25\0\4\5"+ "\3\0\4\5\1\u0229\2\5\1\0\1\5\5\0\17\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u022a\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\u022b\10\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\15\5\1\u01fb\4\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u01fb\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u022c\20\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\3\5\1\u022d\13\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\7\5\1\u022e\12\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\7\5"+ "\1\u022f\12\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\7\5\1\u0230\12\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\4\5\1\u0231\12\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\u0232\13\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\2\5\1\u0233\14\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u0234\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\13\5"+ "\1\u0235\6\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\3\5\1\u0236\13\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u0237\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u0238\20\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\u0239\10\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\15\5\1\u023a\1\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\5\1\u023b\15\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\11\5\1\u023c\1\u023d\1\5\1\u0215"+ "\1\u023e\4\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\11\5\1\u023f\10\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\12\5"+ "\1\u023d\2\5\1\u023e\4\5\25\0\4\5\3\0\7\5"+ "\1\0\1\5\5\0\17\5\1\0\1\u0240\21\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\3\5\1\u0241"+ "\13\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\6\5\1\u01fa\10\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\15\5\1\u01fa"+ "\1\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\11\5\1\u0242\5\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\2\5\1\u0243"+ "\14\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\u0244\15\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\6\5\1\u0245"+ "\10\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\16\5\1\u0246\3\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\1\5\1\u0247"+ "\15\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\1\5\1\u0230\15\5\1\0\22\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\15\5\1\u0248"+ "\1\5\1\0\22\5\25\0\4\5\3\0\7\5\1\0"+ "\1\5\5\0\17\5\1\0\13\5\1\u01fa\6\5\25\0"+ "\4\5\3\0\7\5\1\0\1\5\5\0\16\5\1\u0249"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\17\5\1\0\1\5\1\u024a\20\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\6\5\1\u024b\10\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\u024c\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\17\5\1\0\1\5"+ "\1\u0121\20\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\1\5\1\u024d\15\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\15\5\1\u024e\1\5"+ "\1\0\22\5\25\0\4\5\3\0\7\5\1\0\1\5"+ "\5\0\11\5\1\u024f\5\5\1\0\22\5\25\0\4\5"+ "\3\0\7\5\1\0\1\5\5\0\1\u0250\16\5\1\0"+ "\22\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\17\5\1\0\15\5\1\u023e\4\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\13\5\1\u024e"+ "\6\5\25\0\4\5\3\0\7\5\1\0\1\5\5\0"+ "\7\5\1\u0251\7\5\1\0\22\5\25\0\4\5\3\0"+ "\7\5\1\0\1\5\5\0\17\5\1\0\17\5\1\u01fa"+ "\2\5\24\0"; private static int [] zzUnpackTrans() { int [] result = new int[35112]; 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; private static final char[] EMPTY_BUFFER = new char[0]; private static final int YYEOF = -1; private static java.io.Reader zzReader = null; // Fake /* 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 = "\2\0\1\11\31\1\1\11\4\1\6\11\10\1\1\11"+ "\1\1\4\11\1\1\1\11\12\1\1\11\1\0\1\11"+ "\1\0\14\1\2\11\2\1\2\11\1\1\1\11\71\1"+ "\5\11\1\1\1\11\1\1\7\11\1\1\1\0\1\11"+ "\11\1\2\11\13\1\1\0\106\1\2\11\23\1\1\11"+ "\u013a\1"; private static int [] zzUnpackAttribute() { int [] result = new int[593]; 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 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 CharSequence zzBuffer = ""; /** this buffer may contains the current text array to be matched when it is cheap to acquire it */ private char[] zzBufferArray; /** the textposition at the last accepting state */ private int zzMarkedPos; /** the textposition at the last state to be included in yytext */ private int zzPushbackPos; /** 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; /** * 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; /* user code: */ /** * Creates a new scanner * * @param in the java.io.Reader to read input from. */ GLSLFlexLexer(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[0x10000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ while (i < 182) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); } return map; } public final int getTokenStart(){ return zzStartRead; } public final int getTokenEnd(){ return getTokenStart() + yylength(); } public void reset(CharSequence buffer, int start, int end,int initialState){ zzBuffer = buffer; zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer); zzCurrentPos = zzMarkedPos = zzStartRead = start; zzPushbackPos = 0; zzAtEOF = false; zzAtBOL = true; zzEndRead = end; yybegin(initialState); } /** * 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 { return true; } /** * 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 CharSequence yytext() { return zzBuffer.subSequence(zzStartRead, zzMarkedPos); } /** * 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 zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(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 IElementType advance() throws java.io.IOException { int zzInput; int zzAction; // cached fields: int zzCurrentPosL; int zzMarkedPosL; int zzEndReadL = zzEndRead; CharSequence zzBufferL = zzBuffer; char[] zzBufferArrayL = zzBufferArray; char [] zzCMapL = ZZ_CMAP; int [] zzTransL = ZZ_TRANS; int [] zzRowMapL = ZZ_ROWMAP; int [] zzAttrL = ZZ_ATTRIBUTE; while (true) { zzMarkedPosL = zzMarkedPos; zzAction = -1; zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; zzState = ZZ_LEXSTATE[zzLexicalState]; zzForAction: { while (true) { if (zzCurrentPosL < zzEndReadL) zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++)); 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 = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++)); } } int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; if (zzNext == -1) break zzForAction; zzState = zzNext; int 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 129: { return PREPROCESSOR_IFNDEF; } case 163: break; case 87: { return DMAT4_TYPE; } case 164: break; case 20: { return RIGHT_ANGLE; } case 165: break; case 67: { return LOWP_KEYWORD; } case 166: break; case 13: { return RIGHT_BRACKET; } case 167: break; case 24: { return TILDE; } case 168: break; case 10: { return LEFT_BRACE; } case 169: break; case 31: { return UINT_CONSTANT; } case 170: break; case 154: { return COHERENT_KEYWORD; } case 171: break; case 37: { return DIV_ASSIGN; } case 172: break; case 12: { return LEFT_BRACKET; } case 173: break; case 47: { return LEFT_OP; } case 174: break; case 113: { return SMOOTH_KEYWORD; } case 175: break; case 85: { return DMAT2_TYPE; } case 176: break; case 2: { return INTEGER_CONSTANT; } case 177: break; case 146: { return VARYING_KEYWORD; } case 178: break; case 89: { return DVEC3_TYPE; } case 179: break; case 144: { return PRECISE_KEYWORD; } case 180: break; case 147: { return PREPROCESSOR_DEFINED; } case 181: break; case 90: { return DVEC4_TYPE; } case 182: break; case 54: { return OR_ASSIGN; } case 183: break; case 60: { return DOUBLE_CONSTANT; } case 184: break; case 131: { return DEFAULT_KEYWORD; } case 185: break; case 59: { return PREPROCESSOR_CONCAT; } case 186: break; case 132: { return DISCARD_JUMP_STATEMENT; } case 187: break; case 62: { return INT_TYPE; } case 188: break; case 5: { return DOT; } case 189: break; case 103: { return CONST_KEYWORD; } case 190: break; case 79: { return BOOL_TYPE; } case 191: break; case 9: { yybegin(PREPROCESSOR); return PREPROCESSOR_BEGIN; } case 192: break; case 84: { return FLOAT_TYPE; } case 193: break; case 88: { return DVEC2_TYPE; } case 194: break; case 151: { return VOLATILE_KEYWORD; } case 195: break; case 152: { return CENTROID_KEYWORD; } case 196: break; case 1: { return UNKNOWN; } case 197: break; case 161: { return ATOMIC_UINT_TYPE; } case 198: break; case 116: { return SWITCH_KEYWORD; } case 199: break; case 69: { return ELSE_KEYWORD; } case 200: break; case 81: { return PREPROCESSOR_LINE; } case 201: break; case 140: { return DMAT4X3_TYPE; } case 202: break; case 56: { return NE_OP; } case 203: break; case 126: { return MAT4X4_TYPE; } case 204: break; case 141: { return DMAT4X4_TYPE; } case 205: break; case 28: { return SEMICOLON; } case 206: break; case 145: { return MEDIUMP_KEYWORD; } case 207: break; case 14: { return LEFT_PAREN; } case 208: break; case 80: { return CASE_KEYWORD; } case 209: break; case 124: { return MAT4X2_TYPE; } case 210: break; case 83: { return PREPROCESSOR_ELSE; } case 211: break; case 139: { return DMAT4X2_TYPE; } case 212: break; case 115: { return SHARED_KEYWORD; } case 213: break; case 82: { return PREPROCESSOR_ELIF; } case 214: break; case 125: { return MAT4X3_TYPE; } case 215: break; case 127: { return BUFFER_KEYWORD; } case 216: break; case 96: { return UVEC3_TYPE; } case 217: break; case 107: { return PREPROCESSOR_ERROR; } case 218: break; case 98: { return PATCH_KEYWORD; } case 219: break; case 97: { return UVEC4_TYPE; } case 220: break; case 104: { return HIGHP_KEYWORD; } case 221: break; case 39: { return DO_KEYWORD; } case 222: break; case 48: { return GE_OP; } case 223: break; case 11: { return RIGHT_BRACE; } case 224: break; case 111: { return DOUBLE_TYPE; } case 225: break; case 26: { return QUESTION; } case 226: break; case 162: { return NOPERSPECTIVE_KEYWORD; } case 227: break; case 95: { return UVEC2_TYPE; } case 228: break; case 93: { return IVEC3_TYPE; } case 229: break; case 50: { return AND_ASSIGN; } case 230: break; case 43: { return ADD_ASSIGN; } case 231: break; case 155: { return INVARIANT_KEYWORD; } case 232: break; case 6: { return DASH; } case 233: break; case 94: { return IVEC4_TYPE; } case 234: break; case 45: { return MOD_ASSIGN; } case 235: break; case 22: { return CARET; } case 236: break; case 58: { return PREPROCESSOR_IF; } case 237: break; case 78: { return VOID_TYPE; } case 238: break; case 74: { return BOOL_CONSTANT; } case 239: break; case 106: { return PREPROCESSOR_ENDIF; } case 240: break; case 105: { return WHILE_KEYWORD; } case 241: break; case 153: { return CONTINUE_JUMP_STATEMENT; } case 242: break; case 149: { return RESTRICT_KEYWORD; } case 243: break; case 92: { return IVEC2_TYPE; } case 244: break; case 42: { return EQ_OP; } case 245: break; case 35: { return COMMENT_LINE; } case 246: break; case 17: { return PLUS; } case 247: break; case 134: { return DMAT2X3_TYPE; } case 248: break; case 36: { return COMMENT_BLOCK; } case 249: break; case 156: { return PRECISION_KEYWORD; } case 250: break; case 120: { return MAT2X4_TYPE; } case 251: break; case 135: { return DMAT2X4_TYPE; } case 252: break; case 65: { return LEFT_ASSIGN; } case 253: break; case 70: { return UINT_TYPE; } case 254: break; case 130: { return PREPROCESSOR_PRAGMA; } case 255: break; case 61: { return FOR_KEYWORD; } case 256: break; case 109: { return PREPROCESSOR_UNDEF; } case 257: break; case 27: { return COLON; } case 258: break; case 19: { return LEFT_ANGLE; } case 259: break; case 143: { return UNIFORM_KEYWORD; } case 260: break; case 118: { return MAT2X2_TYPE; } case 261: break; case 133: { return DMAT2X2_TYPE; } case 262: break; case 119: { return MAT2X3_TYPE; } case 263: break; case 38: { return MUL_ASSIGN; } case 264: break; case 25: { return BANG; } case 265: break; case 53: { return XOR_OP; } case 266: break; case 7: { return SLASH; } case 267: break; case 68: { return FLAT_KEYWORD; } case 268: break; case 158: { return WRITEONLY_KEYWORD; } case 269: break; case 3: { return IDENTIFIER; } case 270: break; case 114: { return STRUCT; } case 271: break; case 128: { return PREPROCESSOR_DEFINE; } case 272: break; case 41: { return IN_KEYWORD; } case 273: break; case 57: { return PREPROCESSOR_STRING; } case 274: break; case 8: { return STAR; } case 275: break; case 73: { return MAT4_TYPE; } case 276: break; case 159: { return PREPROCESSOR_EXTENSION; } case 277: break; case 46: { return LE_OP; } case 278: break; case 23: { return VERTICAL_BAR; } case 279: break; case 21: { return AMPERSAND; } case 280: break; case 33: { return DEC_OP; } case 281: break; case 117: { return RETURN_JUMP_STATEMENT; } case 282: break; case 18: { return PERCENT; } case 283: break; case 71: { return MAT2_TYPE; } case 284: break; case 148: { return PREPROCESSOR_VERSION; } case 285: break; case 15: { return RIGHT_PAREN; } case 286: break; case 72: { return MAT3_TYPE; } case 287: break; case 112: { return SAMPLE_KEYWORD; } case 288: break; case 77: { return VEC4_TYPE; } case 289: break; case 64: { return RESERVED_KEYWORD; } case 290: break; case 16: { return EQUAL; } case 291: break; case 51: { return AND_OP; } case 292: break; case 55: { return OR_OP; } case 293: break; case 108: { return PREPROCESSOR_IFDEF; } case 294: break; case 150: { return READONLY_KEYWORD; } case 295: break; case 75: { return VEC2_TYPE; } case 296: break; case 30: { yybegin(YYINITIAL); return PREPROCESSOR_END; } case 297: break; case 63: { return OUT_KEYWORD; } case 298: break; case 4: { return WHITE_SPACE; } case 299: break; case 76: { return VEC3_TYPE; } case 300: break; case 40: { return IF_KEYWORD; } case 301: break; case 52: { return XOR_ASSIGN; } case 302: break; case 34: { return SUB_ASSIGN; } case 303: break; case 137: { return DMAT3X3_TYPE; } case 304: break; case 49: { return RIGHT_OP; } case 305: break; case 123: { return MAT3X4_TYPE; } case 306: break; case 29: { return COMMA; } case 307: break; case 99: { return BREAK_JUMP_STATEMENT; } case 308: break; case 138: { return DMAT3X4_TYPE; } case 309: break; case 102: { return BVEC4_TYPE; } case 310: break; case 110: { return LAYOUT_KEYWORD; } case 311: break; case 32: { return FLOAT_CONSTANT; } case 312: break; case 160: { return SUBROUTINE_KEYWORD; } case 313: break; case 142: { return SAMPLER_TYPE; } case 314: break; case 44: { return INC_OP; } case 315: break; case 157: { return ATTRIBUTE_KEYWORD; } case 316: break; case 91: { return INOUT_KEYWORD; } case 317: break; case 121: { return MAT3X2_TYPE; } case 318: break; case 136: { return DMAT3X2_TYPE; } case 319: break; case 100: { return BVEC2_TYPE; } case 320: break; case 122: { return MAT3X3_TYPE; } case 321: break; case 101: { return BVEC3_TYPE; } case 322: break; case 86: { return DMAT3_TYPE; } case 323: break; case 66: { return RIGHT_ASSIGN; } case 324: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; return null; } else { zzScanError(ZZ_NO_MATCH); } } } } }