1
2
3
4
5
6
7
8
9 package cz.cuni.amis.pogamut.usar2004.communication.messages.usarinfomessages;
10
11 import java.io.Reader;
12
13
14 import java.util.*;
15 import javax.vecmath.*;
16 import cz.cuni.amis.pogamut.base.communication.translator.*;
17 import cz.cuni.amis.pogamut.base.communication.parser.*;
18 import cz.cuni.amis.pogamut.base.communication.parser.exception.*;
19 import cz.cuni.amis.pogamut.base.communication.parser.impl.yylex.*;
20 import cz.cuni.amis.pogamut.base.communication.messages.*;
21 import cz.cuni.amis.pogamut.base.communication.worldview.*;
22 import cz.cuni.amis.pogamut.base.communication.worldview.event.*;
23 import cz.cuni.amis.pogamut.base.communication.worldview.object.*;
24 import cz.cuni.amis.pogamut.base3d.worldview.object.*;
25 import cz.cuni.amis.pogamut.base3d.worldview.object.event.*;
26 import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
27 import cz.cuni.amis.pogamut.usar2004.communication.parser.*;
28 import cz.cuni.amis.pogamut.usar2004.communication.messages.*;
29 import java.lang.reflect.Method;
30 import cz.cuni.amis.utils.exception.*;
31
32
33 import cz.cuni.amis.pogamut.usar2004.communication.messages.datatypes.*;
34 import cz.cuni.amis.pogamut.usar2004.communication.messages.datatypes.CustomTypes.*;
35
36
37
38
39
40
41
42
43
44
45
46 public class Yylex implements IUSAR2004Yylex {
47
48
49 public static final int YYEOF = -1;
50
51
52 private static final int ZZ_BUFFERSIZE = 16384;
53
54
55 public static final int MSG_MISSTA = 6;
56 public static final int MSG_CONF = 14;
57 public static final int MSG_GEO = 12;
58 public static final int MSG_STA = 8;
59 public static final int MSG_NFO = 4;
60 public static final int MSG_RES = 16;
61 public static final int MSG_DIE = 18;
62 public static final int YYINITIAL = 0;
63 public static final int MSG_SEN = 10;
64 public static final int DUMMY = 2;
65
66
67
68
69
70
71
72 private static final int ZZ_LEXSTATE[] = {
73 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
74 8, 8, 9, 9
75 };
76
77
78
79
80 private static final char [] ZZ_CMAP = {
81 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 0, 0, 5, 0, 0,
82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 8, 7, 0,
84 3, 3, 55, 54, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0,
85 0, 28, 49, 31, 33, 29, 15, 30, 59, 26, 57, 58, 37, 25, 23, 24,
86 41, 1, 32, 27, 11, 1, 45, 56, 1, 1, 1, 0, 0, 0, 0, 2,
87 0, 16, 53, 42, 50, 14, 20, 47, 48, 35, 1, 44, 17, 36, 43, 21,
88 40, 46, 12, 18, 19, 13, 38, 51, 52, 39, 1, 34, 0, 9, 0, 0,
89 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
92 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
97 };
98
99
100
101
102 private static final int [] ZZ_ACTION = zzUnpackAction();
103
104 private static final String ZZ_ACTION_PACKED_0 =
105 "\12\0\1\1\2\2\7\1\2\3\3\4\3\5\3\6"+
106 "\3\7\3\10\3\11\3\12\3\13\1\14\106\0\1\15"+
107 "\1\0\1\16\1\17\1\20\1\0\1\21\1\22\15\0"+
108 "\1\23\50\0\1\24\30\0\1\25\252\0\1\26\34\0"+
109 "\1\27\3\0\1\30\27\0\1\31\35\0\1\32\26\0"+
110 "\1\33\6\0\1\34\14\0\1\35\1\0\1\36\1\37"+
111 "\1\40\40\0\1\41\1\42\14\0\1\43\1\44\23\0"+
112 "\1\45\1\46\20\0\1\47\2\0\1\50\1\51\4\0"+
113 "\1\52\6\0\1\53\2\0\1\54\10\0\1\55\4\0"+
114 "\1\56\5\0\1\57\27\0\1\60\6\0\1\61\11\0"+
115 "\1\62\2\0\1\63\24\0\1\64\14\0\1\65\45\0"+
116 "\1\66\16\0\1\67\1\70\17\0\1\71\17\0\1\72"+
117 "\2\0\1\73\52\0\1\74\2\0\1\75\14\0\1\76"+
118 "\3\0\1\77\6\0\1\100\13\0\1\101\11\0\1\102"+
119 "\10\0\1\103\7\0\1\104\65\0\1\105\2\0\1\106"+
120 "\5\0\1\107\33\0\1\110\2\0\1\111\1\0\1\112"+
121 "\1\0\1\113\1\114\13\0\1\115\11\0\1\116\25\0"+
122 "\1\117\1\0\1\120\1\0\1\121\17\0\1\122\1\0"+
123 "\1\123\7\0\1\124\5\0\1\125\1\0\1\126\1\0"+
124 "\1\127\12\0\1\130\6\0\1\131\2\0\1\132\7\0"+
125 "\1\133\10\0\1\134\7\0\1\135\1\0\1\136\10\0"+
126 "\1\137\6\0\1\140\26\0\1\141\4\0\1\142\23\0"+
127 "\1\143\1\0\1\144\10\0\1\145\5\0\1\146\6\0"+
128 "\1\147\17\0\1\150\12\0\1\151\4\0\1\152\5\0"+
129 "\1\153\1\154\1\155\13\0\1\156\13\0\1\157\1\0"+
130 "\1\160\7\0\1\161\1\0\1\162\2\0\1\163\3\0"+
131 "\1\164\2\0\1\165\75\0\1\166\10\0\1\167";
132
133 private static int [] zzUnpackAction() {
134 int [] result = new int[1387];
135 int offset = 0;
136 offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
137 return result;
138 }
139
140 private static int zzUnpackAction(String packed, int offset, int [] result) {
141 int i = 0;
142 int j = offset;
143 int l = packed.length();
144 while (i < l) {
145 int count = packed.charAt(i++);
146 int value = packed.charAt(i++);
147 do result[j++] = value; while (--count > 0);
148 }
149 return j;
150 }
151
152
153
154
155
156 private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
157
158 private static final String ZZ_ROWMAP_PACKED_0 =
159 "\0\0\0\74\0\170\0\264\0\360\0\u012c\0\u0168\0\u01a4"+
160 "\0\u01e0\0\u021c\0\u0258\0\u0258\0\u0294\0\u02d0\0\u030c\0\u0348"+
161 "\0\u0384\0\u03c0\0\u03fc\0\u0438\0\u0258\0\u0294\0\u0258\0\u0294"+
162 "\0\u0474\0\u0258\0\u0294\0\u04b0\0\u0258\0\u0294\0\u04ec\0\u0258"+
163 "\0\u0294\0\u0528\0\u0258\0\u0294\0\u0564\0\u0258\0\u0294\0\u05a0"+
164 "\0\u0258\0\u0294\0\u05dc\0\u0258\0\u0294\0\u0618\0\u0258\0\u0654"+
165 "\0\u0690\0\u06cc\0\u0708\0\u0744\0\u0780\0\u07bc\0\u07f8\0\u0834"+
166 "\0\u0870\0\u08ac\0\u08e8\0\u0924\0\u0960\0\u099c\0\u09d8\0\u0a14"+
167 "\0\u0a50\0\u0a8c\0\u0ac8\0\u0b04\0\u0b40\0\u0b7c\0\u0bb8\0\u0bf4"+
168 "\0\u0c30\0\u0c6c\0\u0ca8\0\u0ce4\0\u0d20\0\u0d5c\0\u0d98\0\u0dd4"+
169 "\0\u0e10\0\u0e4c\0\u0e88\0\u0ec4\0\u0f00\0\u0f3c\0\u0f78\0\u0fb4"+
170 "\0\u0ff0\0\u102c\0\u1068\0\u10a4\0\u10e0\0\u111c\0\u1158\0\u1194"+
171 "\0\u11d0\0\u120c\0\u1248\0\u1284\0\u12c0\0\u12fc\0\u1338\0\u1374"+
172 "\0\u13b0\0\u13ec\0\u1428\0\u1464\0\u14a0\0\u14dc\0\u1518\0\u1554"+
173 "\0\u1590\0\u15cc\0\u1608\0\u1644\0\u1680\0\u0258\0\u16bc\0\u0258"+
174 "\0\u0258\0\u0258\0\u16f8\0\u0258\0\u0258\0\u1734\0\u1770\0\u17ac"+
175 "\0\u17e8\0\u1824\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950\0\u198c"+
176 "\0\u19c8\0\u1a04\0\u0258\0\u1a40\0\u1a7c\0\u1ab8\0\u1af4\0\u1b30"+
177 "\0\u1b6c\0\u1ba8\0\u1be4\0\u1c20\0\u1c5c\0\u1c98\0\u1cd4\0\u1d10"+
178 "\0\u1d4c\0\u1d88\0\u1dc4\0\u1e00\0\u1e3c\0\u1e78\0\u1eb4\0\u1ef0"+
179 "\0\u1f2c\0\u1f68\0\u1fa4\0\u1fe0\0\u201c\0\u2058\0\u2094\0\u20d0"+
180 "\0\u210c\0\u2148\0\u2184\0\u21c0\0\u21fc\0\u2238\0\u2274\0\u22b0"+
181 "\0\u22ec\0\u2328\0\u2364\0\u0258\0\u23a0\0\u23dc\0\u2418\0\u2454"+
182 "\0\u2490\0\u24cc\0\u2508\0\u2544\0\u2580\0\u25bc\0\u25f8\0\u2634"+
183 "\0\u2670\0\u26ac\0\u26e8\0\u2724\0\u2760\0\u279c\0\u27d8\0\u2814"+
184 "\0\u2850\0\u288c\0\u28c8\0\u2904\0\u0258\0\u2940\0\u297c\0\u29b8"+
185 "\0\u29f4\0\u2a30\0\u2a6c\0\u2aa8\0\u2ae4\0\u2b20\0\u2b5c\0\u2b98"+
186 "\0\u2bd4\0\u2c10\0\u2c4c\0\u2c88\0\u2cc4\0\u2d00\0\u2d3c\0\u2d78"+
187 "\0\u2db4\0\u2df0\0\u2e2c\0\u2e68\0\u2ea4\0\u2ee0\0\u2f1c\0\u2f58"+
188 "\0\u2f94\0\u2fd0\0\u300c\0\u3048\0\u3084\0\u30c0\0\u30fc\0\u3138"+
189 "\0\u3174\0\u31b0\0\u31ec\0\u3228\0\u3264\0\u32a0\0\u32dc\0\u3318"+
190 "\0\u3354\0\u3390\0\u33cc\0\u3408\0\u3444\0\u3480\0\u34bc\0\u34f8"+
191 "\0\u3534\0\u3570\0\u35ac\0\u35e8\0\u3624\0\u3660\0\u369c\0\u36d8"+
192 "\0\u3714\0\u3750\0\u378c\0\u37c8\0\u3804\0\u3840\0\u387c\0\u38b8"+
193 "\0\u38f4\0\u3930\0\u396c\0\u39a8\0\u39e4\0\u3a20\0\u3a5c\0\u3a98"+
194 "\0\u3ad4\0\u3b10\0\u3b4c\0\u3b88\0\u3bc4\0\u3c00\0\u3c3c\0\u3c78"+
195 "\0\u3cb4\0\u3cf0\0\u3d2c\0\u3d68\0\u3da4\0\u3de0\0\u3e1c\0\u3e58"+
196 "\0\u3e94\0\u3ed0\0\u3f0c\0\u3f48\0\u3f84\0\u3fc0\0\u3ffc\0\u4038"+
197 "\0\u4074\0\u40b0\0\u40ec\0\u4128\0\u4164\0\u41a0\0\u41dc\0\u4218"+
198 "\0\u4254\0\u4290\0\u42cc\0\u4308\0\u4344\0\u4380\0\u43bc\0\u43f8"+
199 "\0\u4434\0\u4470\0\u44ac\0\u44e8\0\u4524\0\u4560\0\u459c\0\u45d8"+
200 "\0\u4614\0\u4650\0\u468c\0\u46c8\0\u4704\0\u4740\0\u477c\0\u47b8"+
201 "\0\u47f4\0\u4830\0\u486c\0\u48a8\0\u48e4\0\u4920\0\u495c\0\u4998"+
202 "\0\u49d4\0\u4a10\0\u4a4c\0\u4a88\0\u4ac4\0\u4b00\0\u4b3c\0\u4b78"+
203 "\0\u4bb4\0\u4bf0\0\u4c2c\0\u4c68\0\u4ca4\0\u4ce0\0\u4d1c\0\u4d58"+
204 "\0\u4d94\0\u4dd0\0\u4e0c\0\u4e48\0\u4e84\0\u4ec0\0\u4efc\0\u4f38"+
205 "\0\u4f74\0\u4fb0\0\u4fec\0\u5028\0\u5064\0\u50a0\0\u50dc\0\u0258"+
206 "\0\u5118\0\u5154\0\u5190\0\u51cc\0\u5208\0\u5244\0\u5280\0\u52bc"+
207 "\0\u52f8\0\u5334\0\u5370\0\u53ac\0\u53e8\0\u5424\0\u5460\0\u549c"+
208 "\0\u54d8\0\u5514\0\u5550\0\u558c\0\u55c8\0\u5604\0\u5640\0\u567c"+
209 "\0\u56b8\0\u56f4\0\u5730\0\u576c\0\u0258\0\u57a8\0\u57e4\0\u5820"+
210 "\0\u0258\0\u585c\0\u5898\0\u58d4\0\u5910\0\u594c\0\u5988\0\u59c4"+
211 "\0\u5a00\0\u5a3c\0\u5a78\0\u5ab4\0\u5af0\0\u5b2c\0\u5b68\0\u5ba4"+
212 "\0\u5be0\0\u5c1c\0\u5c58\0\u5c94\0\u5cd0\0\u5d0c\0\u5d48\0\u5d84"+
213 "\0\u0258\0\u5dc0\0\u5dfc\0\u5e38\0\u5e74\0\u5eb0\0\u5eec\0\u5f28"+
214 "\0\u5f64\0\u5fa0\0\u5fdc\0\u6018\0\u6054\0\u6090\0\u60cc\0\u6108"+
215 "\0\u6144\0\u6180\0\u61bc\0\u61f8\0\u6234\0\u6270\0\u62ac\0\u62e8"+
216 "\0\u6324\0\u6360\0\u639c\0\u63d8\0\u6414\0\u6450\0\u0258\0\u648c"+
217 "\0\u64c8\0\u6504\0\u6540\0\u657c\0\u65b8\0\u65f4\0\u6630\0\u666c"+
218 "\0\u66a8\0\u66e4\0\u6720\0\u675c\0\u6798\0\u67d4\0\u6810\0\u684c"+
219 "\0\u6888\0\u68c4\0\u6900\0\u693c\0\u6978\0\u0258\0\u69b4\0\u69f0"+
220 "\0\u6a2c\0\u6a68\0\u6aa4\0\u6ae0\0\u0258\0\u6b1c\0\u6b58\0\u6b94"+
221 "\0\u6bd0\0\u6c0c\0\u6c48\0\u6c84\0\u6cc0\0\u6cfc\0\u6d38\0\u6d74"+
222 "\0\u6db0\0\u0258\0\u6dec\0\u0258\0\u0258\0\u0258\0\u6e28\0\u6e64"+
223 "\0\u6ea0\0\u6edc\0\u6f18\0\u6f54\0\u6f90\0\u6fcc\0\u7008\0\u7044"+
224 "\0\u7080\0\u70bc\0\u70f8\0\u7134\0\u7170\0\u71ac\0\u71e8\0\u7224"+
225 "\0\u7260\0\u729c\0\u72d8\0\u7314\0\u7350\0\u738c\0\u73c8\0\u7404"+
226 "\0\u7440\0\u747c\0\u74b8\0\u74f4\0\u7530\0\u756c\0\u0258\0\u0258"+
227 "\0\u75a8\0\u75e4\0\u7620\0\u765c\0\u7698\0\u76d4\0\u7710\0\u774c"+
228 "\0\u7788\0\u77c4\0\u7800\0\u783c\0\u0258\0\u0258\0\u7878\0\u78b4"+
229 "\0\u78f0\0\u792c\0\u7968\0\u79a4\0\u79e0\0\u7a1c\0\u7a58\0\u7a94"+
230 "\0\u7ad0\0\u7b0c\0\u7b48\0\u7b84\0\u7bc0\0\u7bfc\0\u7c38\0\u7c74"+
231 "\0\u7cb0\0\u0258\0\u0258\0\u7cec\0\u7d28\0\u7d64\0\u7da0\0\u7ddc"+
232 "\0\u7e18\0\u7e54\0\u7e90\0\u7ecc\0\u7f08\0\u7f44\0\u7f80\0\u7fbc"+
233 "\0\u7ff8\0\u8034\0\u8070\0\u0258\0\u80ac\0\u80e8\0\u0258\0\u0258"+
234 "\0\u8124\0\u8160\0\u819c\0\u81d8\0\u0258\0\u8214\0\u8250\0\u828c"+
235 "\0\u82c8\0\u8304\0\u8340\0\u0258\0\u837c\0\u83b8\0\u0258\0\u83f4"+
236 "\0\u8430\0\u846c\0\u84a8\0\u84e4\0\u8520\0\u855c\0\u8598\0\u0258"+
237 "\0\u85d4\0\u8610\0\u864c\0\u8688\0\u0258\0\u86c4\0\u8700\0\u873c"+
238 "\0\u8778\0\u87b4\0\u0258\0\u87f0\0\u882c\0\u8868\0\u88a4\0\u88e0"+
239 "\0\u891c\0\u8958\0\u8994\0\u89d0\0\u8a0c\0\u8a48\0\u8a84\0\u8ac0"+
240 "\0\u8afc\0\u8b38\0\u8b74\0\u8bb0\0\u8bec\0\u8c28\0\u8c64\0\u8ca0"+
241 "\0\u8cdc\0\u8d18\0\u0258\0\u8d54\0\u8d90\0\u8dcc\0\u8e08\0\u8e44"+
242 "\0\u8e80\0\u0258\0\u8ebc\0\u8ef8\0\u8f34\0\u8f70\0\u8fac\0\u8fe8"+
243 "\0\u9024\0\u9060\0\u909c\0\u0258\0\u90d8\0\u9114\0\u0258\0\u9150"+
244 "\0\u918c\0\u91c8\0\u9204\0\u9240\0\u927c\0\u92b8\0\u92f4\0\u9330"+
245 "\0\u936c\0\u93a8\0\u93e4\0\u9420\0\u945c\0\u9498\0\u94d4\0\u9510"+
246 "\0\u954c\0\u9588\0\u95c4\0\u0258\0\u9600\0\u963c\0\u9678\0\u96b4"+
247 "\0\u96f0\0\u972c\0\u9768\0\u97a4\0\u97e0\0\u981c\0\u9858\0\u9894"+
248 "\0\u0258\0\u98d0\0\u990c\0\u9948\0\u9984\0\u99c0\0\u99fc\0\u9a38"+
249 "\0\u9a74\0\u9ab0\0\u9aec\0\u9b28\0\u9b64\0\u9ba0\0\u9bdc\0\u9c18"+
250 "\0\u9c54\0\u9c90\0\u9ccc\0\u9d08\0\u9d44\0\u9d80\0\u9dbc\0\u9df8"+
251 "\0\u9e34\0\u9e70\0\u9eac\0\u9ee8\0\u9f24\0\u9f60\0\u9f9c\0\u9fd8"+
252 "\0\ua014\0\ua050\0\ua08c\0\ua0c8\0\ua104\0\ua140\0\u0258\0\ua17c"+
253 "\0\ua1b8\0\ua1f4\0\ua230\0\ua26c\0\ua2a8\0\ua2e4\0\ua320\0\ua35c"+
254 "\0\ua398\0\ua3d4\0\ua410\0\ua44c\0\ua488\0\u0258\0\u0258\0\ua4c4"+
255 "\0\ua500\0\ua53c\0\ua578\0\ua5b4\0\ua5f0\0\ua62c\0\ua668\0\ua6a4"+
256 "\0\ua6e0\0\ua71c\0\ua758\0\ua794\0\ua7d0\0\ua80c\0\u0258\0\ua848"+
257 "\0\ua884\0\ua8c0\0\ua8fc\0\ua938\0\ua974\0\ua9b0\0\ua9ec\0\uaa28"+
258 "\0\uaa64\0\uaaa0\0\uaadc\0\uab18\0\uab54\0\uab90\0\u0258\0\uabcc"+
259 "\0\uac08\0\u0258\0\uac44\0\uac80\0\uacbc\0\uacf8\0\uad34\0\uad70"+
260 "\0\uadac\0\uade8\0\uae24\0\uae60\0\uae9c\0\uaed8\0\uaf14\0\uaf50"+
261 "\0\uaf8c\0\uafc8\0\ub004\0\ub040\0\ub07c\0\ub0b8\0\ub0f4\0\ub130"+
262 "\0\ub16c\0\ub1a8\0\ub1e4\0\ub220\0\ub25c\0\ub298\0\ub2d4\0\ub310"+
263 "\0\ub34c\0\ub388\0\ub3c4\0\ub400\0\ub43c\0\ub478\0\ub4b4\0\ub4f0"+
264 "\0\ub52c\0\ub568\0\ub5a4\0\ub5e0\0\u0258\0\ub61c\0\ub658\0\u0258"+
265 "\0\ub694\0\ub6d0\0\ub70c\0\ub748\0\ub784\0\ub7c0\0\ub7fc\0\ub838"+
266 "\0\ub874\0\ub8b0\0\ub8ec\0\ub928\0\u0258\0\ub964\0\ub9a0\0\ub9dc"+
267 "\0\u0258\0\uba18\0\uba54\0\uba90\0\ubacc\0\ubb08\0\ubb44\0\u0258"+
268 "\0\ubb80\0\ubbbc\0\ubbf8\0\ubc34\0\ubc70\0\ubcac\0\ubce8\0\ubd24"+
269 "\0\ubd60\0\ubd9c\0\ubdd8\0\u0258\0\ube14\0\ube50\0\ube8c\0\ubec8"+
270 "\0\ubf04\0\ubf40\0\ubf7c\0\ubfb8\0\ubff4\0\u0258\0\uc030\0\uc06c"+
271 "\0\uc0a8\0\uc0e4\0\uc120\0\uc15c\0\uc198\0\uc1d4\0\u0258\0\uc210"+
272 "\0\uc24c\0\uc288\0\uc2c4\0\uc300\0\uc33c\0\uc378\0\u0258\0\uc3b4"+
273 "\0\uc3f0\0\uc42c\0\uc468\0\uc4a4\0\uc4e0\0\uc51c\0\uc558\0\uc594"+
274 "\0\uc5d0\0\uc60c\0\uc648\0\uc684\0\uc6c0\0\uc6fc\0\uc738\0\uc774"+
275 "\0\uc7b0\0\uc7ec\0\uc828\0\uc864\0\uc8a0\0\uc8dc\0\uc918\0\uc954"+
276 "\0\uc990\0\uc9cc\0\uca08\0\uca44\0\uca80\0\ucabc\0\ucaf8\0\ucb34"+
277 "\0\ucb70\0\ucbac\0\ucbe8\0\ucc24\0\ucc60\0\ucc9c\0\uccd8\0\ucd14"+
278 "\0\ucd50\0\ucd8c\0\ucdc8\0\uce04\0\uce40\0\uce7c\0\uceb8\0\ucef4"+
279 "\0\ucf30\0\ucf6c\0\ucfa8\0\ucfe4\0\u0258\0\ud020\0\ud05c\0\u0258"+
280 "\0\ud098\0\ud0d4\0\ud110\0\ud14c\0\ud188\0\u0258\0\ud1c4\0\ud200"+
281 "\0\ud23c\0\ud278\0\ud2b4\0\ud2f0\0\ud32c\0\ud368\0\ud3a4\0\ud3e0"+
282 "\0\ud41c\0\ud458\0\ud494\0\ud4d0\0\ud50c\0\ud548\0\ud584\0\ud5c0"+
283 "\0\ud5fc\0\ud638\0\ud674\0\ud6b0\0\ud6ec\0\ud728\0\ud764\0\ud7a0"+
284 "\0\ud7dc\0\u0258\0\ud818\0\ud854\0\u0258\0\ud890\0\u0258\0\ud8cc"+
285 "\0\u0258\0\u0258\0\ud908\0\ud944\0\ud980\0\ud9bc\0\ud9f8\0\uda34"+
286 "\0\uda70\0\udaac\0\udae8\0\udb24\0\udb60\0\u0258\0\udb9c\0\udbd8"+
287 "\0\udc14\0\udc50\0\udc8c\0\udcc8\0\udd04\0\udd40\0\udd7c\0\u0258"+
288 "\0\uddb8\0\uddf4\0\ude30\0\ude6c\0\udea8\0\udee4\0\udf20\0\udf5c"+
289 "\0\udf98\0\udfd4\0\ue010\0\ue04c\0\ue088\0\ue0c4\0\ue100\0\ue13c"+
290 "\0\ue178\0\ue1b4\0\ue1f0\0\ue22c\0\ue268\0\u0258\0\ue2a4\0\u0258"+
291 "\0\ue2e0\0\u0258\0\ue31c\0\ue358\0\ue394\0\ue3d0\0\ue40c\0\ue448"+
292 "\0\ue484\0\ue4c0\0\ue4fc\0\ue538\0\ue574\0\ue5b0\0\ue5ec\0\ue628"+
293 "\0\ue664\0\u0258\0\ue6a0\0\u0258\0\ue6dc\0\ue718\0\ue754\0\ue790"+
294 "\0\ue7cc\0\ue808\0\ue844\0\u0258\0\ue880\0\ue8bc\0\ue8f8\0\ue934"+
295 "\0\ue970\0\u0258\0\ue9ac\0\u0258\0\ue9e8\0\u0258\0\uea24\0\uea60"+
296 "\0\uea9c\0\uead8\0\ueb14\0\ueb50\0\ueb8c\0\uebc8\0\uec04\0\uec40"+
297 "\0\u0258\0\uec7c\0\uecb8\0\uecf4\0\ued30\0\ued6c\0\ueda8\0\u0258"+
298 "\0\uede4\0\uee20\0\u0258\0\uee5c\0\uee98\0\ueed4\0\uef10\0\uef4c"+
299 "\0\uef88\0\uefc4\0\u0258\0\uf000\0\uf03c\0\uf078\0\uf0b4\0\uf0f0"+
300 "\0\uf12c\0\uf168\0\uf1a4\0\u0258\0\uf1e0\0\uf21c\0\uf258\0\uf294"+
301 "\0\uf2d0\0\uf30c\0\uf348\0\u0258\0\uf384\0\u0258\0\uf3c0\0\uf3fc"+
302 "\0\uf438\0\uf474\0\uf4b0\0\uf4ec\0\uf528\0\uf564\0\u0258\0\uf5a0"+
303 "\0\uf5dc\0\uf618\0\uf654\0\uf690\0\uf6cc\0\u0258\0\uf708\0\uf744"+
304 "\0\uf780\0\uf7bc\0\uf7f8\0\uf834\0\uf870\0\uf8ac\0\uf8e8\0\uf924"+
305 "\0\uf960\0\uf99c\0\uf9d8\0\ufa14\0\ufa50\0\ufa8c\0\ufac8\0\ufb04"+
306 "\0\ufb40\0\ufb7c\0\ufbb8\0\ufbf4\0\u0258\0\ufc30\0\ufc6c\0\ufca8"+
307 "\0\ufce4\0\u0258\0\ufd20\0\ufd5c\0\ufd98\0\ufdd4\0\ufe10\0\ufe4c"+
308 "\0\ufe88\0\ufec4\0\uff00\0\uff3c\0\uff78\0\uffb4\0\ufff0\1\54"+
309 "\1\150\1\244\1\340\1\u011c\1\u0158\0\u0258\1\u0194\0\u0258"+
310 "\1\u01d0\1\u020c\1\u0248\1\u0284\1\u02c0\1\u02fc\1\u0338\1\u0374"+
311 "\0\u0258\1\u03b0\1\u03ec\1\u0428\1\u0464\1\u04a0\0\u0258\1\u04dc"+
312 "\1\u0518\1\u0554\1\u0590\1\u05cc\1\u0608\0\u0258\1\u0644\1\u0680"+
313 "\1\u06bc\1\u06f8\1\u0734\1\u0770\1\u07ac\1\u07e8\1\u0824\1\u0860"+
314 "\1\u089c\1\u08d8\1\u0914\1\u0950\1\u098c\0\u0258\1\u09c8\1\u0a04"+
315 "\1\u0a40\1\u0a7c\1\u0ab8\1\u0af4\1\u0b30\1\u0b6c\1\u0ba8\1\u0be4"+
316 "\0\u0258\1\u0c20\1\u0c5c\1\u0c98\1\u0cd4\0\u0258\1\u0d10\1\u0d4c"+
317 "\1\u0d88\1\u0dc4\1\u0e00\0\u0258\0\u0258\0\u0258\1\u0e3c\1\u0e78"+
318 "\1\u0eb4\1\u0ef0\1\u0f2c\1\u0f68\1\u0fa4\1\u0fe0\1\u101c\1\u1058"+
319 "\1\u1094\0\u0258\1\u10d0\1\u110c\1\u1148\1\u1184\1\u11c0\1\u11fc"+
320 "\1\u1238\1\u1274\1\u12b0\1\u12ec\1\u1328\0\u0258\1\u1364\0\u0258"+
321 "\1\u13a0\1\u13dc\1\u1418\1\u1454\1\u1490\1\u14cc\1\u1508\0\u0258"+
322 "\1\u1544\0\u0258\1\u1580\1\u15bc\0\u0258\1\u15f8\1\u1634\1\u1670"+
323 "\0\u0258\1\u16ac\1\u16e8\0\u0258\1\u1724\1\u1760\1\u179c\1\u17d8"+
324 "\1\u1814\1\u1850\1\u188c\1\u18c8\1\u1904\1\u1940\1\u197c\1\u19b8"+
325 "\1\u19f4\1\u1a30\1\u1a6c\1\u1aa8\1\u1ae4\1\u1b20\1\u1b5c\1\u1b98"+
326 "\1\u1bd4\1\u1c10\1\u1c4c\1\u1c88\1\u1cc4\1\u1d00\1\u1d3c\1\u1d78"+
327 "\1\u1db4\1\u1df0\1\u1e2c\1\u1e68\1\u1ea4\1\u1ee0\1\u1f1c\1\u1f58"+
328 "\1\u1f94\1\u1fd0\1\u200c\1\u2048\1\u2084\1\u20c0\1\u20fc\1\u2138"+
329 "\1\u2174\1\u21b0\1\u21ec\1\u2228\1\u2264\1\u22a0\1\u22dc\1\u2318"+
330 "\1\u2354\1\u2390\1\u23cc\1\u2408\1\u2444\1\u2480\1\u24bc\1\u24f8"+
331 "\1\u2534\0\u0258\1\u2570\1\u25ac\1\u25e8\1\u2624\1\u2660\1\u269c"+
332 "\1\u26d8\1\u2714\0\u0258";
333
334 private static int [] zzUnpackRowMap() {
335 int [] result = new int[1387];
336 int offset = 0;
337 offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
338 return result;
339 }
340
341 private static int zzUnpackRowMap(String packed, int offset, int [] result) {
342 int i = 0;
343 int j = offset;
344 int l = packed.length();
345 while (i < l) {
346 int high = packed.charAt(i++) << 16;
347 result[j++] = high | packed.charAt(i++);
348 }
349 return j;
350 }
351
352
353
354
355 private static final int [] ZZ_TRANS = zzUnpackTrans();
356
357 private static final String ZZ_TRANS_PACKED_0 =
358 "\4\13\1\14\1\15\1\14\17\13\1\14\1\16\1\13"+
359 "\1\17\1\13\1\20\2\13\1\21\1\22\1\23\1\24"+
360 "\32\13\5\25\1\26\1\14\65\25\5\27\1\30\1\14"+
361 "\33\27\1\31\31\27\5\32\1\33\1\14\33\32\1\34"+
362 "\31\32\5\35\1\36\1\14\33\35\1\37\31\35\5\40"+
363 "\1\41\1\14\33\40\1\42\31\40\5\43\1\44\1\14"+
364 "\33\43\1\45\31\43\5\46\1\47\1\14\33\46\1\50"+
365 "\31\46\5\51\1\52\1\14\33\51\1\53\31\51\5\54"+
366 "\1\55\1\14\33\54\1\56\31\54\102\0\1\57\104\0"+
367 "\1\60\106\0\1\61\54\0\1\62\21\0\1\63\73\0"+
368 "\1\64\66\0\1\65\100\0\1\66\70\0\1\67\54\0"+
369 "\1\70\13\0\1\71\3\0\1\72\2\0\1\73\6\0"+
370 "\1\74\41\0\1\75\13\0\1\76\15\0\1\77\7\0"+
371 "\1\100\16\0\11\101\1\0\1\101\1\102\3\101\1\103"+
372 "\6\101\1\104\4\101\1\105\4\101\1\106\4\101\1\107"+
373 "\7\101\1\110\3\101\1\111\12\101\13\0\1\112\3\0"+
374 "\1\113\7\0\1\114\1\115\1\0\1\116\1\117\1\120"+
375 "\1\0\1\121\1\122\1\123\1\124\3\0\1\125\3\0"+
376 "\1\126\3\0\1\127\31\0\1\130\13\0\1\131\1\132"+
377 "\6\0\1\133\1\0\1\134\3\0\1\135\3\0\1\136"+
378 "\16\0\1\137\3\0\11\140\1\0\1\140\1\141\12\140"+
379 "\1\142\1\143\1\144\1\145\1\140\1\146\11\140\1\147"+
380 "\23\140\1\150\2\140\13\0\1\151\3\0\1\152\7\0"+
381 "\1\153\3\0\1\154\3\0\1\155\15\0\1\156\35\0"+
382 "\1\157\17\0\1\160\1\0\1\161\13\0\1\162\3\0"+
383 "\1\163\6\0\1\164\1\0\1\165\31\0\1\166\76\0"+
384 "\1\167\74\0\1\170\66\0\1\171\74\0\1\172\72\0"+
385 "\1\173\77\0\1\174\75\0\1\175\101\0\1\176\50\0"+
386 "\1\177\76\0\1\200\70\0\1\201\71\0\1\202\102\0"+
387 "\1\203\15\0\1\204\50\0\1\205\116\0\1\206\50\0"+
388 "\1\207\53\0\11\101\1\0\14\101\1\104\56\101\1\0"+
389 "\14\101\1\104\14\101\1\210\3\101\1\211\35\101\1\0"+
390 "\2\101\1\212\11\101\1\104\45\101\11\104\1\213\62\104"+
391 "\11\101\1\0\11\101\1\214\2\101\1\104\56\101\1\0"+
392 "\3\101\1\215\1\216\7\101\1\104\56\101\1\0\14\101"+
393 "\1\104\14\101\1\217\41\101\1\0\14\101\1\104\14\101"+
394 "\1\220\41\101\1\0\6\101\1\221\5\101\1\104\45\101"+
395 "\43\0\1\222\3\0\1\223\54\0\1\224\12\0\1\225"+
396 "\50\0\1\226\67\0\1\227\120\0\1\230\52\0\1\231"+
397 "\2\0\1\232\122\0\1\233\41\0\1\234\100\0\1\235"+
398 "\64\0\1\236\1\0\1\237\70\0\1\240\1\241\24\0"+
399 "\1\242\50\0\1\243\4\0\1\244\62\0\1\245\3\0"+
400 "\1\246\4\0\1\247\64\0\1\250\24\0\1\251\77\0"+
401 "\1\252\44\0\1\253\67\0\1\254\107\0\1\255\106\0"+
402 "\1\256\55\0\1\257\15\0\1\260\50\0\1\261\133\0"+
403 "\1\262\13\0\11\140\1\0\14\140\1\142\56\140\1\0"+
404 "\14\140\1\142\20\140\1\263\24\140\11\142\1\264\62\142"+
405 "\11\140\1\0\6\140\1\265\5\140\1\142\56\140\1\0"+
406 "\14\140\1\142\21\140\1\266\34\140\1\0\6\140\1\267"+
407 "\5\140\1\142\14\140\1\270\41\140\1\0\11\140\1\271"+
408 "\2\140\1\142\56\140\1\0\14\140\1\142\14\140\1\272"+
409 "\41\140\1\0\13\140\1\273\1\142\45\140\43\0\1\274"+
410 "\3\0\1\275\54\0\1\276\63\0\1\277\76\0\1\300"+
411 "\75\0\1\301\111\0\1\302\51\0\1\303\72\0\1\304"+
412 "\71\0\1\305\1\0\1\306\22\0\1\307\46\0\1\310"+
413 "\72\0\1\311\74\0\1\312\120\0\1\313\63\0\1\314"+
414 "\57\0\1\315\120\0\1\316\73\0\1\317\47\0\1\320"+
415 "\117\0\1\321\75\0\1\322\41\0\1\323\123\0\1\324"+
416 "\73\0\1\325\102\0\1\326\41\0\1\327\52\0\11\101"+
417 "\1\0\14\101\1\104\15\101\1\330\40\101\1\0\14\101"+
418 "\1\104\21\101\1\331\34\101\1\0\13\101\1\332\1\104"+
419 "\56\101\1\0\4\101\1\333\7\101\1\104\56\101\1\0"+
420 "\14\101\1\104\33\101\1\334\22\101\1\0\6\101\1\335"+
421 "\5\101\1\104\56\101\1\0\14\101\1\104\30\101\1\336"+
422 "\25\101\1\0\4\101\1\337\7\101\1\104\56\101\1\0"+
423 "\11\101\1\340\2\101\1\104\45\101\44\0\1\341\77\0"+
424 "\1\342\100\0\1\343\102\0\1\344\53\0\1\345\72\0"+
425 "\1\346\56\0\1\347\70\0\1\350\70\0\1\351\125\0"+
426 "\1\352\43\0\1\353\65\0\1\354\101\0\1\355\124\0"+
427 "\1\356\6\0\1\357\25\0\1\360\132\0\1\361\42\0"+
428 "\1\362\74\0\1\363\65\0\1\364\34\0\1\365\1\366"+
429 "\45\0\1\367\62\0\1\370\101\0\1\371\72\0\1\372"+
430 "\74\0\1\373\121\0\1\374\67\0\1\375\72\0\1\376"+
431 "\66\0\1\377\101\0\1\u0100\101\0\1\u0101\74\0\1\u0102"+
432 "\34\0\1\u0103\75\0\1\u0104\55\0\11\140\1\0\14\140"+
433 "\1\142\21\140\1\u0105\34\140\1\0\14\140\1\142\15\140"+
434 "\1\u0106\40\140\1\0\14\140\1\142\23\140\1\u0107\32\140"+
435 "\1\0\10\140\1\u0108\3\140\1\142\35\140\1\u0109\20\140"+
436 "\1\0\14\140\1\142\24\140\1\u010a\31\140\1\0\4\140"+
437 "\1\u010b\7\140\1\142\56\140\1\0\14\140\1\142\24\140"+
438 "\1\u010c\31\140\1\0\14\140\1\142\14\140\1\u010d\30\140"+
439 "\44\0\1\u010e\77\0\1\u010f\100\0\1\u0110\62\0\1\u0111"+
440 "\47\0\1\u0112\126\0\1\u0113\36\0\1\u0114\75\0\1\u0115"+
441 "\70\0\1\u0116\76\0\1\u0117\117\0\1\u0118\43\0\1\u0119"+
442 "\137\0\1\u011a\34\0\1\u011b\72\0\1\u011c\74\0\1\u011d"+
443 "\65\0\1\u011e\76\0\1\u011f\73\0\1\u0120\71\0\1\u0121"+
444 "\75\0\1\u0122\73\0\1\u0123\133\0\1\u0124\33\0\1\u0125"+
445 "\73\0\1\u0126\131\0\1\u0127\34\0\1\u0128\56\0\11\101"+
446 "\1\0\4\101\1\u0129\7\101\1\104\56\101\1\0\4\101"+
447 "\1\u012a\7\101\1\104\56\101\1\0\14\101\1\104\24\101"+
448 "\1\u012b\31\101\1\0\2\101\1\u012c\11\101\1\104\56\101"+
449 "\1\0\14\101\1\104\33\101\1\u012d\22\101\1\0\2\101"+
450 "\1\u012e\11\101\1\104\56\101\1\0\14\101\1\104\31\101"+
451 "\1\u012f\24\101\1\0\14\101\1\104\34\101\1\u0130\21\101"+
452 "\1\0\11\101\1\u0131\2\101\1\104\45\101\16\0\1\u0132"+
453 "\73\0\1\u0133\103\0\1\u0134\73\0\1\u0135\63\0\1\u0136"+
454 "\73\0\1\u0137\60\0\1\u0138\4\0\1\u0139\55\0\2\u0138"+
455 "\22\0\1\u013a\100\0\1\u013b\66\0\1\u013c\103\0\1\u013d"+
456 "\72\0\1\u013e\73\0\1\u013f\125\0\1\u0140\57\0\1\u0141"+
457 "\50\0\1\u0142\75\0\1\u0143\74\0\1\u0144\113\0\1\u0145"+
458 "\112\0\1\u0146\31\0\1\u0147\132\0\1\u0148\101\0\1\u0149"+
459 "\31\0\1\u014a\66\0\1\u014b\7\0\1\u014c\37\0\1\u014d"+
460 "\1\u014e\32\0\1\u014f\110\0\1\u0150\46\0\1\u0151\73\0"+
461 "\1\u0152\73\0\1\u0153\103\0\1\u0154\63\0\1\u0155\75\0"+
462 "\1\u0156\127\0\1\u0157\35\0\1\u0158\73\0\1\u0159\55\0"+
463 "\11\140\1\0\4\140\1\u015a\7\140\1\142\56\140\1\0"+
464 "\4\140\1\u015b\7\140\1\142\56\140\1\0\13\140\1\u015c"+
465 "\1\142\56\140\1\0\10\140\1\u015d\3\140\1\142\56\140"+
466 "\1\0\1\140\1\u015e\3\140\1\u015f\6\140\1\142\4\140"+
467 "\1\u0160\4\140\1\u0161\14\140\1\u0162\27\140\1\0\14\140"+
468 "\1\142\11\140\1\u0163\14\140\1\u0164\27\140\1\0\4\140"+
469 "\1\u0165\7\140\1\142\56\140\1\0\14\140\1\142\25\140"+
470 "\1\u0166\30\140\1\0\14\140\1\142\24\140\1\u0167\20\140"+
471 "\16\0\1\u0168\73\0\1\u0169\103\0\1\u016a\63\0\1\u016b"+
472 "\100\0\1\u016c\74\0\1\u016d\132\0\1\u016e\54\0\1\u016f"+
473 "\51\0\1\u0170\74\0\1\u0171\70\0\1\u0172\71\0\1\u0173"+
474 "\120\0\1\u0174\51\0\1\u0175\122\0\1\u0176\44\0\1\u0177"+
475 "\106\0\1\u0178\104\0\1\u0179\54\0\1\u017a\70\0\1\u017b"+
476 "\73\0\1\u017c\71\0\1\u017d\67\0\1\u017e\104\0\1\u017f"+
477 "\73\0\1\u0180\73\0\1\u0181\63\0\1\u0182\55\0\11\101"+
478 "\1\0\14\101\1\u0183\56\101\1\0\14\101\1\u0184\56\101"+
479 "\1\0\11\101\1\u0185\2\101\1\104\56\101\1\0\14\101"+
480 "\1\104\24\101\1\u0186\31\101\1\0\4\101\1\u0187\7\101"+
481 "\1\104\56\101\1\0\14\101\1\104\4\101\1\u0188\51\101"+
482 "\1\0\11\101\1\u0189\2\101\1\104\56\101\1\0\14\101"+
483 "\1\u018a\56\101\1\0\4\101\1\u018b\7\101\1\104\45\101"+
484 "\26\0\1\u018c\73\0\1\u018d\50\0\1\u018e\3\0\1\u018f"+
485 "\1\u0190\55\0\2\u018e\7\0\1\u0191\4\0\1\u0192\55\0"+
486 "\2\u0191\32\0\1\u0193\120\0\1\u0194\23\0\1\u0138\5\0"+
487 "\1\u0195\54\0\2\u0138\7\0\1\u0138\62\0\2\u0138\25\0"+
488 "\1\u0196\67\0\1\u0197\77\0\1\u0198\52\0\11\u013d\1\u0199"+
489 "\62\u013d\53\0\1\u019a\41\0\1\u019b\70\0\1\u019c\72\0"+
490 "\1\u019d\101\0\1\u019e\113\0\1\u019f\56\0\1\u01a0\70\0"+
491 "\1\u01a1\123\0\1\u01a2\43\0\1\u01a3\113\0\1\u01a4\56\0"+
492 "\1\u01a5\74\0\1\u01a6\72\0\1\u01a7\50\0\1\u01a8\3\0"+
493 "\1\u01a9\1\u01aa\55\0\2\u01a8\45\0\1\u01ab\73\0\1\u01ac"+
494 "\32\0\3\u01ad\1\u01ae\3\u01ad\1\u01af\1\u01b0\1\u01b1\54\u01ad"+
495 "\2\u01ae\4\u01ad\65\0\1\u01b2\34\0\1\u01b3\73\0\1\u01b4"+
496 "\120\0\1\u01b5\23\0\1\u01b6\3\0\1\u01b7\1\u01b8\55\0"+
497 "\2\u01b6\57\0\1\u01b9\43\0\1\u01ba\76\0\1\u01bb\120\0"+
498 "\1\u01bc\41\0\1\u01bd\52\0\11\140\1\0\14\140\1\u01be"+
499 "\56\140\1\0\14\140\1\u01bf\56\140\1\0\14\140\1\142"+
500 "\33\140\1\u01c0\22\140\1\0\14\140\1\u01c1\56\140\1\0"+
501 "\13\140\1\u01c2\1\142\56\140\1\0\2\140\1\u01c3\11\140"+
502 "\1\142\56\140\1\0\14\140\1\142\21\140\1\u01c4\34\140"+
503 "\1\0\4\140\1\u01c5\1\140\1\u01c6\5\140\1\142\56\140"+
504 "\1\0\6\140\1\u01c7\5\140\1\142\56\140\1\0\6\140"+
505 "\1\u01c8\5\140\1\142\56\140\1\0\6\140\1\u01c9\5\140"+
506 "\1\142\56\140\1\0\2\140\1\u01ca\11\140\1\142\56\140"+
507 "\1\0\14\140\1\u01cb\56\140\1\0\11\140\1\u01cc\2\140"+
508 "\1\142\45\140\26\0\1\u01cd\73\0\1\u01ce\45\0\11\u016a"+
509 "\1\u01cf\62\u016a\26\0\1\u01d0\62\0\1\u01d1\121\0\1\u01d2"+
510 "\100\0\1\u01d3\66\0\1\u01d4\46\0\1\u01d5\135\0\1\u01d6"+
511 "\72\0\1\u01d7\66\0\1\u01d8\73\0\1\u01d9\37\0\1\u01da"+
512 "\102\0\1\u01db\64\0\1\u01dc\120\0\1\u01dd\30\0\11\u017a"+
513 "\1\0\14\u017a\1\u01de\45\u017a\51\0\1\u01df\71\0\1\u01e0"+
514 "\52\0\1\u01e1\63\0\1\u01e2\60\0\1\u01e3\3\0\1\u01e4"+
515 "\1\u01e5\55\0\2\u01e3\4\0\11\u0180\1\u01e6\62\u0180\3\0"+
516 "\1\u01e7\4\0\1\u01e8\55\0\2\u01e7\32\0\1\u01e9\45\0"+
517 "\3\104\1\u01ea\3\104\1\u01eb\1\u01ec\1\213\54\104\2\u01ea"+
518 "\4\104\11\u0184\1\u01ed\62\u0184\11\101\1\0\14\101\1\104"+
519 "\4\101\1\u01ee\51\101\1\0\14\101\1\104\22\101\1\u01ef"+
520 "\33\101\1\0\2\101\1\u01f0\11\101\1\104\56\101\1\0"+
521 "\11\101\1\u01f1\2\101\1\104\56\101\1\0\1\101\1\u01f2"+
522 "\12\101\1\104\3\101\1\u01f3\41\101\3\104\1\u01f4\4\104"+
523 "\1\u01f5\1\213\54\104\2\u01f4\4\104\11\101\1\0\2\101"+
524 "\1\u01f6\11\101\1\104\45\101\3\0\1\u01f7\3\0\1\u01f8"+
525 "\1\u01f9\55\0\2\u01f7\4\0\11\u018d\1\u01fa\62\u018d\3\0"+
526 "\1\u018e\3\0\1\u01fb\1\0\1\u01fc\54\0\2\u018e\7\0"+
527 "\1\u01fb\62\0\2\u01fb\7\0\1\u018e\3\0\1\u018f\56\0"+
528 "\2\u018e\7\0\1\u0191\5\0\1\u01fd\54\0\2\u0191\7\0"+
529 "\1\u0191\62\0\2\u0191\4\0\11\u0193\1\u01fe\14\u0193\1\u01ff"+
530 "\45\u0193\23\0\1\u0200\71\0\1\u0201\74\0\1\u0202\67\0"+
531 "\1\u0203\75\0\1\u0204\70\0\1\u0205\104\0\1\u0206\67\0"+
532 "\1\u0207\114\0\1\u0208\53\0\1\u0209\53\0\1\u020a\3\0"+
533 "\1\u020b\1\u020c\55\0\2\u020a\21\0\1\u020d\74\0\1\u020e"+
534 "\120\0\1\u020f\53\0\1\u0210\53\0\1\u0211\3\0\1\u0212"+
535 "\1\u0213\55\0\2\u0211\24\0\1\u0214\56\0\1\u0215\3\0"+
536 "\1\u0216\1\u0217\55\0\2\u0215\7\0\1\u01a8\3\0\1\u0218"+
537 "\2\0\1\u0219\53\0\2\u01a8\7\0\1\u0218\62\0\2\u0218"+
538 "\7\0\1\u01a8\3\0\1\u01a9\56\0\2\u01a8\32\0\1\u021a"+
539 "\73\0\1\u021b\45\0\11\u01ad\1\u01b1\65\u01ad\1\u01ae\3\u01ad"+
540 "\1\u021c\1\u01ad\1\u01b1\1\u021d\53\u01ad\2\u01ae\7\u01ad\1\u021c"+
541 "\5\u01ad\1\u01b1\54\u01ad\2\u021c\7\u01ad\1\u01ae\3\u01ad\1\u01af"+
542 "\1\u01ad\1\u01b1\54\u01ad\2\u01ae\4\u01ad\21\0\1\u021e\52\0"+
543 "\11\u01b3\1\u021f\62\u01b3\11\u01b4\1\u0220\14\u01b4\1\u0221\45\u01b4"+
544 "\23\0\1\u0222\53\0\1\u01b6\3\0\1\u0223\2\0\1\u0224"+
545 "\53\0\2\u01b6\7\0\1\u0223\62\0\2\u0223\7\0\1\u01b6"+
546 "\3\0\1\u01b7\56\0\2\u01b6\26\0\1\u0225\114\0\1\u0226"+
547 "\33\0\1\u0227\4\0\1\u0228\55\0\2\u0227\27\0\1\u0229"+
548 "\103\0\1\u022a\4\0\1\u022b\20\0\1\u022c\12\0\11\u01be"+
549 "\1\u022d\62\u01be\11\u01bf\1\u022e\62\u01bf\11\140\1\0\4\140"+
550 "\1\u022f\7\140\1\142\45\140\3\142\1\u0230\3\142\1\u0231"+
551 "\1\u0232\1\264\54\142\2\u0230\4\142\11\140\1\0\2\140"+
552 "\1\u0233\11\140\1\142\56\140\1\0\13\140\1\u0234\1\142"+
553 "\56\140\1\0\4\140\1\u0235\7\140\1\142\56\140\1\0"+
554 "\6\140\1\u0236\5\140\1\142\56\140\1\0\14\140\1\142"+
555 "\24\140\1\u0237\31\140\1\0\7\140\1\u0238\4\140\1\142"+
556 "\56\140\1\0\14\140\1\142\24\140\1\u0239\31\140\1\0"+
557 "\7\140\1\u023a\4\140\1\142\56\140\1\0\14\140\1\142"+
558 "\14\140\1\u023b\30\140\3\142\1\u023c\4\142\1\u023d\1\264"+
559 "\54\142\2\u023c\4\142\11\140\1\0\1\140\1\u023e\12\140"+
560 "\1\142\45\140\3\0\1\u023f\3\0\1\u0240\1\u0241\55\0"+
561 "\2\u023f\4\0\11\u01ce\1\u0242\62\u01ce\11\u01d0\1\u0243\62\u01d0"+
562 "\22\0\1\u0244\130\0\1\u0245\41\0\1\u0246\121\0\1\u0247"+
563 "\102\0\1\u0248\44\0\1\u0249\56\0\1\u024a\100\0\1\u024b"+
564 "\71\0\1\u024c\75\0\1\u024d\123\0\1\u024e\34\0\1\u024f"+
565 "\123\0\1\u0250\27\0\11\u017a\1\0\14\u017a\1\u01de\16\u017a"+
566 "\1\u0251\26\u017a\25\0\1\u0252\116\0\1\u0253\23\0\11\u01e1"+
567 "\1\u0254\62\u01e1\26\0\1\u0255\50\0\1\u01e3\3\0\1\u0256"+
568 "\1\0\1\u0257\54\0\2\u01e3\7\0\1\u0256\62\0\2\u0256"+
569 "\7\0\1\u01e3\3\0\1\u01e4\56\0\2\u01e3\7\0\1\u01e7"+
570 "\5\0\1\u0258\54\0\2\u01e7\7\0\1\u01e7\62\0\2\u01e7"+
571 "\7\0\1\u0259\3\0\1\u025a\1\u025b\55\0\2\u0259\4\0"+
572 "\3\104\1\u01ea\3\104\1\u025c\1\104\1\u025d\54\104\2\u01ea"+
573 "\7\104\1\u025c\5\104\1\213\54\104\2\u025c\7\104\1\u01ea"+
574 "\3\104\1\u01eb\1\104\1\213\54\104\2\u01ea\4\104\11\101"+
575 "\1\0\11\101\1\u025e\2\101\1\104\56\101\1\0\7\101"+
576 "\1\u025f\4\101\1\104\56\101\1\0\14\101\1\104\5\101"+
577 "\1\u0260\50\101\1\0\4\101\1\u0261\7\101\1\104\56\101"+
578 "\1\0\13\101\1\u0262\1\104\56\101\1\0\14\101\1\104"+
579 "\24\101\1\u0263\20\101\3\104\1\u01f4\5\104\1\u0264\54\104"+
580 "\2\u01f4\7\104\1\u01f4\5\104\1\213\54\104\2\u01f4\4\104"+
581 "\11\101\1\0\14\101\1\104\20\101\1\u0265\24\101\3\0"+
582 "\1\u01f7\3\0\1\u0266\1\0\1\u0267\54\0\2\u01f7\7\0"+
583 "\1\u0266\62\0\2\u0266\7\0\1\u01f7\3\0\1\u01f8\56\0"+
584 "\2\u01f7\7\0\1\u01fb\5\0\1\u01fc\54\0\2\u01fb\4\0"+
585 "\11\u0193\1\u01fe\1\u0193\1\u0268\12\u0193\1\u01ff\11\u0193\1\u0269"+
586 "\33\u0193\20\0\1\u026a\116\0\1\u026b\56\0\1\u026c\61\0"+
587 "\1\u026d\105\0\1\u026e\70\0\1\u026f\50\0\11\u0206\1\u0270"+
588 "\62\u0206\26\0\1\u0271\72\0\1\u0272\115\0\1\u0273\27\0"+
589 "\1\u020a\3\0\1\u0274\1\0\1\u0275\54\0\2\u020a\7\0"+
590 "\1\u0274\62\0\2\u0274\7\0\1\u020a\3\0\1\u020b\56\0"+
591 "\2\u020a\66\0\1\u0276\33\0\1\u0277\76\0\1\u0278\63\0"+
592 "\1\u0279\61\0\1\u0211\3\0\1\u027a\1\0\1\u027b\54\0"+
593 "\2\u0211\7\0\1\u027a\62\0\2\u027a\7\0\1\u0211\3\0"+
594 "\1\u0212\56\0\2\u0211\50\0\1\u027c\32\0\1\u0215\3\0"+
595 "\1\u027d\2\0\1\u027e\53\0\2\u0215\7\0\1\u027d\62\0"+
596 "\2\u027d\7\0\1\u0215\3\0\1\u0216\56\0\2\u0215\7\0"+
597 "\1\u0218\6\0\1\u0219\53\0\2\u0218\7\0\1\u027f\3\0"+
598 "\1\u0280\1\u0281\55\0\2\u027f\7\0\1\u0282\3\0\1\u0283"+
599 "\1\u0284\55\0\2\u0282\7\0\1\u0285\3\0\1\u0286\1\u0287"+
600 "\55\0\2\u0285\4\0\3\u01ad\1\u021c\5\u01ad\1\u01b1\1\u021d"+
601 "\53\u01ad\2\u021c\7\u01ad\1\u0288\3\u01ad\1\u0289\1\u028a\1\u01b1"+
602 "\54\u01ad\2\u0288\4\u01ad\16\0\1\u028b\55\0\11\u01b4\1\u0220"+
603 "\14\u01b4\1\u0221\16\u01b4\1\u028c\26\u01b4\20\0\1\u028d\56\0"+
604 "\1\u0223\6\0\1\u0224\53\0\2\u0223\7\0\1\u028e\3\0"+
605 "\1\u028f\1\u0290\55\0\2\u028e\47\0\1\u0291\55\0\1\u0292"+
606 "\51\0\1\u0227\5\0\1\u0293\54\0\2\u0227\7\0\1\u0227"+
607 "\62\0\2\u0227\51\0\1\u0294\44\0\1\u0295\75\0\1\u0296"+
608 "\73\0\1\u0297\53\0\11\140\1\0\14\140\1\u0298\45\140"+
609 "\3\142\1\u0230\3\142\1\u0299\1\142\1\u029a\54\142\2\u0230"+
610 "\7\142\1\u0299\5\142\1\264\54\142\2\u0299\7\142\1\u0230"+
611 "\3\142\1\u0231\1\142\1\264\54\142\2\u0230\4\142\11\140"+
612 "\1\0\14\140\1\142\27\140\1\u029b\26\140\1\0\14\140"+
613 "\1\142\24\140\1\u029c\31\140\1\0\4\140\1\u029d\7\140"+
614 "\1\142\56\140\1\0\2\140\1\u029e\11\140\1\142\56\140"+
615 "\1\0\14\140\1\142\30\140\1\u029f\25\140\1\0\14\140"+
616 "\1\u02a0\56\140\1\0\14\140\1\142\30\140\1\u02a1\25\140"+
617 "\1\0\14\140\1\u02a2\56\140\1\0\14\140\1\142\24\140"+
618 "\1\u02a3\20\140\3\142\1\u023c\5\142\1\u02a4\54\142\2\u023c"+
619 "\7\142\1\u023c\5\142\1\264\54\142\2\u023c\4\142\11\140"+
620 "\1\0\14\140\1\142\20\140\1\u02a5\24\140\3\0\1\u023f"+
621 "\3\0\1\u02a6\1\0\1\u02a7\54\0\2\u023f\7\0\1\u02a6"+
622 "\62\0\2\u02a6\7\0\1\u023f\3\0\1\u0240\56\0\2\u023f"+
623 "\32\0\1\u02a8\73\0\1\u02a9\61\0\1\u02aa\136\0\1\u02ab"+
624 "\75\0\1\u02ac\35\0\1\u02ad\63\0\1\u02ae\121\0\1\u02af"+
625 "\50\0\1\u02b0\150\0\1\u02b1\27\0\1\u02b2\72\0\1\u02b3"+
626 "\110\0\1\u02b4\30\0\11\u017a\1\0\13\u017a\1\u02b5\1\u01de"+
627 "\45\u017a\22\0\1\u02b6\67\0\1\u02b7\60\0\1\u02b8\3\0"+
628 "\1\u02b9\1\u02ba\55\0\2\u02b8\7\0\1\u0256\5\0\1\u0257"+
629 "\54\0\2\u0256\7\0\1\u0259\3\0\1\u02bb\1\0\1\u02bc"+
630 "\54\0\2\u0259\7\0\1\u02bb\62\0\2\u02bb\7\0\1\u0259"+
631 "\3\0\1\u025a\56\0\2\u0259\4\0\3\104\1\u025c\5\104"+
632 "\1\u025d\54\104\2\u025c\4\104\11\101\1\0\4\101\1\u02bd"+
633 "\7\101\1\104\56\101\1\0\6\101\1\u02be\5\101\1\104"+
634 "\56\101\1\0\14\101\1\104\24\101\1\u02bf\31\101\1\0"+
635 "\4\101\1\u02c0\7\101\1\104\56\101\1\0\14\101\1\104"+
636 "\30\101\1\u02c1\25\101\1\0\11\101\1\u02c2\2\101\1\104"+
637 "\56\101\1\0\14\101\1\u02c3\45\101\3\0\1\u0266\5\0"+
638 "\1\u0267\54\0\2\u0266\4\0\11\u0193\1\u01fe\13\u0193\1\u02c4"+
639 "\1\u01ff\14\u0193\1\u02c5\41\u0193\1\u01fe\6\u0193\1\u02c6\5\u0193"+
640 "\1\u01ff\45\u0193\23\0\1\u02c7\73\0\1\u02c8\50\0\11\u026c"+
641 "\1\u02c9\62\u026c\20\0\1\u02ca\56\0\1\u02cb\3\0\1\u02cc"+
642 "\1\u02cd\55\0\2\u02cb\47\0\1\u02ce\33\0\1\u02cf\3\0"+
643 "\1\u02d0\1\u02d1\55\0\2\u02cf\57\0\1\u02d2\46\0\1\u02d3"+
644 "\50\0\1\u0274\5\0\1\u0275\54\0\2\u0274\22\0\1\u02d4"+
645 "\77\0\1\u02d5\124\0\1\u02d6\102\0\1\u02d7\14\0\1\u027a"+
646 "\5\0\1\u027b\54\0\2\u027a\22\0\1\u02d8\60\0\1\u027d"+
647 "\6\0\1\u027e\53\0\2\u027d\7\0\1\u02d9\3\0\1\u02da"+
648 "\1\u02db\55\0\2\u02d9\7\0\1\u027f\3\0\1\u02dc\2\0"+
649 "\1\u02dd\53\0\2\u027f\7\0\1\u02dc\62\0\2\u02dc\7\0"+
650 "\1\u027f\3\0\1\u0280\56\0\2\u027f\7\0\1\u0282\3\0"+
651 "\1\u02de\2\0\1\u02df\53\0\2\u0282\7\0\1\u02de\62\0"+
652 "\2\u02de\7\0\1\u0282\3\0\1\u0283\56\0\2\u0282\7\0"+
653 "\1\u0285\3\0\1\u02e0\2\0\1\u02e1\53\0\2\u0285\7\0"+
654 "\1\u02e0\62\0\2\u02e0\7\0\1\u0285\3\0\1\u0286\56\0"+
655 "\2\u0285\4\0\3\u01ad\1\u0288\3\u01ad\1\u02e2\1\u01ad\1\u01b1"+
656 "\1\u02e3\53\u01ad\2\u0288\7\u01ad\1\u02e2\5\u01ad\1\u01b1\54\u01ad"+
657 "\2\u02e2\7\u01ad\1\u0288\3\u01ad\1\u0289\1\u01ad\1\u01b1\54\u01ad"+
658 "\2\u0288\4\u01ad\26\0\1\u02e4\45\0\11\u01b4\1\u0220\13\u01b4"+
659 "\1\u02e5\1\u0221\45\u01b4\23\0\1\u02e6\53\0\1\u028e\3\0"+
660 "\1\u02e7\2\0\1\u02e8\53\0\2\u028e\7\0\1\u02e7\62\0"+
661 "\2\u02e7\7\0\1\u028e\3\0\1\u028f\56\0\2\u028e\31\0"+
662 "\1\u02e9\121\0\1\u02ea\63\0\1\u02eb\100\0\1\u02ec\105\0"+
663 "\1\u02ed\33\0\1\u02ee\51\0\11\u0298\1\u02ef\62\u0298\3\142"+
664 "\1\u0299\5\142\1\u029a\54\142\2\u0299\4\142\11\140\1\0"+
665 "\3\140\1\u02f0\10\140\1\142\56\140\1\0\11\140\1\u02f1"+
666 "\2\140\1\142\56\140\1\0\14\140\1\142\33\140\1\u02f2"+
667 "\22\140\1\0\14\140\1\142\4\140\1\u02f3\51\140\1\0"+
668 "\4\140\1\u02f4\7\140\1\142\45\140\3\142\1\u02f5\3\142"+
669 "\1\u02f6\1\u02f7\1\264\54\142\2\u02f5\4\142\11\140\1\0"+
670 "\4\140\1\u02f8\7\140\1\142\45\140\3\142\1\u02f9\3\142"+
671 "\1\u02fa\1\u02fb\1\264\54\142\2\u02f9\4\142\11\140\1\0"+
672 "\14\140\1\142\30\140\1\u02fc\25\140\1\0\14\140\1\142"+
673 "\21\140\1\u02fd\23\140\3\0\1\u02a6\5\0\1\u02a7\54\0"+
674 "\2\u02a6\4\0\11\u02a8\1\u02fe\62\u02a8\11\u02a9\1\u02ff\62\u02a9"+
675 "\23\0\1\u0300\76\0\1\u0301\114\0\1\u0302\40\0\1\u0303"+
676 "\126\0\1\u0304\44\0\1\u0305\146\0\1\u0306\43\0\1\u0307"+
677 "\50\0\1\u0308\54\0\3\u0309\3\0\2\u0309\2\0\13\u0309"+
678 "\1\0\13\u0309\1\0\31\u0309\23\0\1\u030a\50\0\11\u017a"+
679 "\1\0\14\u017a\1\u01de\23\u017a\1\u030b\21\u017a\16\0\1\u030c"+
680 "\103\0\1\u030d\50\0\1\u02b8\3\0\1\u030e\1\0\1\u030f"+
681 "\54\0\2\u02b8\7\0\1\u030e\62\0\2\u030e\7\0\1\u02b8"+
682 "\3\0\1\u02b9\56\0\2\u02b8\7\0\1\u02bb\5\0\1\u02bc"+
683 "\54\0\2\u02bb\4\0\11\101\1\0\4\101\1\u0310\7\101"+
684 "\1\104\56\101\1\0\14\101\1\104\24\101\1\u0311\31\101"+
685 "\1\0\14\101\1\104\30\101\1\u0312\25\101\1\0\2\101"+
686 "\1\u0313\11\101\1\104\56\101\1\0\14\101\1\104\30\101"+
687 "\1\u0314\25\101\1\0\4\101\1\u0315\7\101\1\104\45\101"+
688 "\3\104\1\u0316\4\104\1\u0317\1\213\54\104\2\u0316\4\104"+
689 "\11\u0193\1\u01fe\3\u0193\1\u0318\10\u0193\1\u01ff\56\u0193\1\u01fe"+
690 "\14\u0193\1\u01ff\23\u0193\1\u0319\32\u0193\1\u01fe\14\u0193\1\u01ff"+
691 "\24\u0193\1\u031a\20\u0193\43\0\1\u031b\46\0\1\u031c\100\0"+
692 "\1\u031d\53\0\1\u02cb\3\0\1\u031e\1\0\1\u031f\54\0"+
693 "\2\u02cb\7\0\1\u031e\62\0\2\u031e\7\0\1\u02cb\3\0"+
694 "\1\u02cc\56\0\2\u02cb\31\0\1\u0320\51\0\1\u02cf\3\0"+
695 "\1\u0321\1\0\1\u0322\54\0\2\u02cf\7\0\1\u0321\62\0"+
696 "\2\u0321\7\0\1\u02cf\3\0\1\u02d0\56\0\2\u02cf\32\0"+
697 "\1\u0323\50\0\1\u0324\3\0\1\u0325\1\u0326\55\0\2\u0324"+
698 "\32\0\1\u0327\73\0\1\u0328\73\0\1\u0329\63\0\1\u032a"+
699 "\103\0\1\u032b\50\0\1\u02d9\3\0\1\u032c\2\0\1\u032d"+
700 "\53\0\2\u02d9\7\0\1\u032c\62\0\2\u032c\7\0\1\u02d9"+
701 "\3\0\1\u02da\56\0\2\u02d9\7\0\1\u02dc\6\0\1\u02dd"+
702 "\53\0\2\u02dc\7\0\1\u032e\3\0\1\u032f\1\u0330\55\0"+
703 "\2\u032e\7\0\1\u02de\6\0\1\u02df\53\0\2\u02de\7\0"+
704 "\1\u0331\3\0\1\u0332\1\u0333\55\0\2\u0331\7\0\1\u02e0"+
705 "\6\0\1\u02e1\53\0\2\u02e0\7\0\1\u0334\3\0\1\u0335"+
706 "\1\u0336\55\0\2\u0334\4\0\3\u01ad\1\u02e2\5\u01ad\1\u01b1"+
707 "\1\u02e3\53\u01ad\2\u02e2\7\u01ad\1\u0337\3\u01ad\1\u0338\1\u0339"+
708 "\1\u01b1\54\u01ad\2\u0337\4\u01ad\13\0\1\u033a\3\0\1\u033b"+
709 "\3\0\1\u033a\1\u033b\47\0\11\u01b4\1\u0220\14\u01b4\1\u0221"+
710 "\23\u01b4\1\u033c\21\u01b4\43\0\1\u033d\33\0\1\u02e7\6\0"+
711 "\1\u02e8\53\0\2\u02e7\7\0\1\u033e\3\0\1\u033f\1\u0340"+
712 "\55\0\2\u033e\57\0\1\u0341\46\0\1\u0342\120\0\1\u0343"+
713 "\40\0\1\u0344\116\0\1\u0345\46\0\1\u0346\55\0\11\140"+
714 "\1\0\4\140\1\u0347\7\140\1\142\56\140\1\0\14\140"+
715 "\1\142\4\140\1\u0348\51\140\1\0\14\140\1\u0349\56\140"+
716 "\1\0\11\140\1\u034a\2\140\1\142\56\140\1\0\14\140"+
717 "\1\u034b\45\140\3\142\1\u02f5\3\142\1\u034c\1\142\1\u034d"+
718 "\54\142\2\u02f5\7\142\1\u034c\5\142\1\264\54\142\2\u034c"+
719 "\7\142\1\u02f5\3\142\1\u02f6\1\142\1\264\54\142\2\u02f5"+
720 "\4\142\11\140\1\0\14\140\1\u034e\45\140\3\142\1\u02f9"+
721 "\3\142\1\u034f\1\142\1\u0350\54\142\2\u02f9\7\142\1\u034f"+
722 "\5\142\1\264\54\142\2\u034f\7\142\1\u02f9\3\142\1\u02fa"+
723 "\1\142\1\264\54\142\2\u02f9\4\142\11\140\1\0\1\140"+
724 "\1\u0351\12\140\1\142\56\140\1\0\4\140\1\u0352\7\140"+
725 "\1\142\45\140\3\0\1\u0353\62\0\2\u0353\17\0\1\u0354"+
726 "\3\0\1\u0355\3\0\1\u0354\1\u0355\137\0\1\u0356\46\0"+
727 "\1\u0357\100\0\1\u0358\67\0\1\u0359\72\0\1\u035a\53\0"+
728 "\1\u035b\114\0\1\u035c\30\0\3\u0309\3\0\2\u0309\1\u035d"+
729 "\1\0\13\u0309\1\0\13\u0309\1\0\31\u0309\26\0\1\u035e"+
730 "\45\0\11\u017a\1\0\6\u017a\1\u035f\5\u017a\1\u01de\45\u017a"+
731 "\22\0\1\u0360\51\0\11\u030d\1\u0361\62\u030d\3\0\1\u030e"+
732 "\5\0\1\u030f\54\0\2\u030e\4\0\11\101\1\0\2\101"+
733 "\1\u0362\11\101\1\104\56\101\1\0\4\101\1\u0363\7\101"+
734 "\1\104\56\101\1\0\7\101\1\u0364\4\101\1\104\56\101"+
735 "\1\0\14\101\1\u0365\56\101\1\0\7\101\1\u0366\4\101"+
736 "\1\104\56\101\1\0\14\101\1\104\24\101\1\u0367\20\101"+
737 "\3\104\1\u0316\5\104\1\u0368\54\104\2\u0316\7\104\1\u0316"+
738 "\5\104\1\213\54\104\2\u0316\4\104\11\u0193\1\u01fe\14\u0193"+
739 "\1\u01ff\23\u0193\1\u0369\32\u0193\1\u01fe\14\u0193\1\u01ff\25\u0193"+
740 "\1\u036a\30\u0193\1\u01fe\14\u0193\1\u01ff\30\u0193\1\u036b\14\u0193"+
741 "\25\0\1\u036c\70\0\1\u036d\114\0\1\u036e\33\0\1\u031e"+
742 "\5\0\1\u031f\54\0\2\u031e\57\0\1\u036f\23\0\1\u0321"+
743 "\5\0\1\u0322\54\0\2\u0321\7\0\1\u0370\3\0\1\u0371"+
744 "\1\u0372\55\0\2\u0370\7\0\1\u0324\3\0\1\u0373\1\0"+
745 "\1\u0374\54\0\2\u0324\7\0\1\u0373\62\0\2\u0373\7\0"+
746 "\1\u0324\3\0\1\u0325\56\0\2\u0324\7\0\1\u0375\4\0"+
747 "\1\u0376\55\0\2\u0375\7\0\1\u0377\3\0\1\u0378\1\u0379"+
748 "\55\0\2\u0377\7\0\1\u037a\3\0\1\u037b\1\u037c\55\0"+
749 "\2\u037a\32\0\1\u037d\45\0\11\u032b\1\u037e\62\u032b\3\0"+
750 "\1\u032c\6\0\1\u032d\53\0\2\u032c\7\0\1\u037f\3\0"+
751 "\1\u0380\1\u0381\55\0\2\u037f\7\0\1\u032e\3\0\1\u0382"+
752 "\2\0\1\u0383\53\0\2\u032e\7\0\1\u0382\62\0\2\u0382"+
753 "\7\0\1\u032e\3\0\1\u032f\56\0\2\u032e\7\0\1\u0331"+
754 "\3\0\1\u0384\2\0\1\u0385\53\0\2\u0331\7\0\1\u0384"+
755 "\62\0\2\u0384\7\0\1\u0331\3\0\1\u0332\56\0\2\u0331"+
756 "\7\0\1\u0334\3\0\1\u0386\1\0\1\u0387\54\0\2\u0334"+
757 "\7\0\1\u0386\62\0\2\u0386\7\0\1\u0334\3\0\1\u0335"+
758 "\56\0\2\u0334\4\0\3\u01ad\1\u0337\3\u01ad\1\u0388\1\u01ad"+
759 "\1\u01b1\1\u0389\53\u01ad\2\u0337\7\u01ad\1\u0388\5\u01ad\1\u01b1"+
760 "\54\u01ad\2\u0388\7\u01ad\1\u0337\3\u01ad\1\u0338\1\u01ad\1\u01b1"+
761 "\54\u01ad\2\u0337\4\u01ad\14\0\1\u038a\77\0\1\u038b\53\0"+
762 "\11\u01b4\1\u0220\6\u01b4\1\u038c\5\u01b4\1\u0221\45\u01b4\25\0"+
763 "\1\u038d\51\0\1\u033e\3\0\1\u038e\1\0\1\u038f\54\0"+
764 "\2\u033e\7\0\1\u038e\62\0\2\u038e\7\0\1\u033e\3\0"+
765 "\1\u033f\56\0\2\u033e\26\0\1\u0390\54\0\1\u0391\3\0"+
766 "\1\u0392\1\u0393\55\0\2\u0391\60\0\1\u0394\33\0\1\u0395"+
767 "\74\0\1\u0396\104\0\1\u0397\45\0\11\140\1\0\14\140"+
768 "\1\u0398\56\140\1\0\11\140\1\u0399\2\140\1\142\45\140"+
769 "\3\142\1\u039a\3\142\1\u039b\1\u039c\1\264\54\142\2\u039a"+
770 "\4\142\11\140\1\0\4\140\1\u039d\7\140\1\142\45\140"+
771 "\3\142\1\u039e\3\142\1\u039f\1\u03a0\1\264\54\142\2\u039e"+
772 "\7\142\1\u034c\5\142\1\u034d\54\142\2\u034c\7\142\1\u03a1"+
773 "\3\142\1\u03a2\1\u03a3\1\264\54\142\2\u03a1\7\142\1\u034f"+
774 "\5\142\1\u0350\54\142\2\u034f\4\142\11\140\1\0\14\140"+
775 "\1\142\20\140\1\u03a4\35\140\1\0\14\140\1\u03a5\45\140"+
776 "\26\0\1\u03a6\61\0\1\u03a7\77\0\1\u03a8\100\0\1\u03a9"+
777 "\121\0\1\u03aa\36\0\1\u03ab\75\0\1\u03ac\76\0\1\u03ad"+
778 "\76\0\1\u03ae\63\0\1\u03af\60\0\1\u03b0\3\0\1\u03b1"+
779 "\1\u03b2\55\0\2\u03b0\4\0\11\u017a\1\0\11\u017a\1\u03b3"+
780 "\2\u017a\1\u01de\45\u017a\26\0\1\u03b4\45\0\11\101\1\0"+
781 "\14\101\1\u03b5\56\101\1\0\14\101\1\104\5\101\1\u03b6"+
782 "\50\101\1\0\4\101\1\u03b7\7\101\1\104\45\101\3\104"+
783 "\1\u03b8\3\104\1\u03b9\1\u03ba\1\213\54\104\2\u03b8\4\104"+
784 "\11\101\1\0\4\101\1\u03bb\7\101\1\104\56\101\1\0"+
785 "\10\101\1\u03bc\3\101\1\104\45\101\11\u0193\1\u01fe\14\u0193"+
786 "\1\u01ff\31\u0193\1\u03bd\24\u0193\1\u01fe\14\u0193\1\u03be\56\u0193"+
787 "\1\u01fe\4\u0193\1\u03bf\7\u0193\1\u01ff\45\u0193\53\0\1\u03c0"+
788 "\46\0\1\u03c1\72\0\1\u03c2\74\0\1\u03c3\50\0\1\u0370"+
789 "\3\0\1\u03c4\1\0\1\u03c5\54\0\2\u0370\7\0\1\u03c4"+
790 "\62\0\2\u03c4\7\0\1\u0370\3\0\1\u0371\56\0\2\u0370"+
791 "\7\0\1\u0373\5\0\1\u0374\54\0\2\u0373\7\0\1\u0375"+
792 "\6\0\1\u03c6\53\0\2\u0375\7\0\1\u0375\62\0\2\u0375"+
793 "\7\0\1\u0377\3\0\1\u03c7\1\0\1\u03c8\54\0\2\u0377"+
794 "\7\0\1\u03c7\62\0\2\u03c7\7\0\1\u0377\3\0\1\u0378"+
795 "\56\0\2\u0377\7\0\1\u037a\3\0\1\u03c9\2\0\1\u03ca"+
796 "\53\0\2\u037a\7\0\1\u03c9\62\0\2\u03c9\7\0\1\u037a"+
797 "\3\0\1\u037b\56\0\2\u037a\7\0\1\u03cb\4\0\1\u03cc"+
798 "\55\0\2\u03cb\7\0\1\u037f\3\0\1\u03cd\1\0\1\u03ce"+
799 "\54\0\2\u037f\7\0\1\u03cd\62\0\2\u03cd\7\0\1\u037f"+
800 "\3\0\1\u0380\56\0\2\u037f\7\0\1\u0382\6\0\1\u0383"+
801 "\53\0\2\u0382\7\0\1\u03cf\3\0\1\u03d0\1\u03d1\55\0"+
802 "\2\u03cf\7\0\1\u0384\6\0\1\u0385\53\0\2\u0384\7\0"+
803 "\1\u03d2\3\0\1\u03d3\1\u03d4\55\0\2\u03d2\7\0\1\u0386"+
804 "\5\0\1\u0387\54\0\2\u0386\4\0\3\u01ad\1\u0388\5\u01ad"+
805 "\1\u01b1\1\u0389\53\u01ad\2\u0388\7\u01ad\1\u03d5\3\u01ad\1\u03d6"+
806 "\1\u03d7\1\u01b1\54\u01ad\2\u03d5\4\u01ad\15\0\1\u03d8\77\0"+
807 "\1\u03d9\52\0\11\u01b4\1\u0220\11\u01b4\1\u03da\2\u01b4\1\u0221"+
808 "\45\u01b4\53\0\1\u03db\23\0\1\u038e\5\0\1\u038f\54\0"+
809 "\2\u038e\32\0\1\u03dc\50\0\1\u0391\3\0\1\u03dd\2\0"+
810 "\1\u03de\53\0\2\u0391\7\0\1\u03dd\62\0\2\u03dd\7\0"+
811 "\1\u0391\3\0\1\u0392\56\0\2\u0391\32\0\1\u03df\65\0"+
812 "\1\u03e0\75\0\1\u03e1\54\0\1\u03e2\3\0\1\u03e3\1\u03e4"+
813 "\55\0\2\u03e2\4\0\3\142\1\u03e5\3\142\1\u03e6\1\u03e7"+
814 "\1\264\54\142\2\u03e5\4\142\11\140\1\0\4\140\1\u03e8"+
815 "\7\140\1\142\45\140\3\142\1\u039a\3\142\1\u03e9\1\142"+
816 "\1\u03ea\54\142\2\u039a\7\142\1\u03e9\5\142\1\264\54\142"+
817 "\2\u03e9\7\142\1\u039a\3\142\1\u039b\1\142\1\264\54\142"+
818 "\2\u039a\4\142\11\140\1\0\4\140\1\u03eb\7\140\1\142"+
819 "\45\140\3\142\1\u039e\3\142\1\u03ec\1\142\1\u03ed\54\142"+
820 "\2\u039e\7\142\1\u03ec\5\142\1\264\54\142\2\u03ec\7\142"+
821 "\1\u039e\3\142\1\u039f\1\142\1\264\54\142\2\u039e\7\142"+
822 "\1\u03a1\3\142\1\u03ee\1\142\1\u03ef\54\142\2\u03a1\7\142"+
823 "\1\u03ee\5\142\1\264\54\142\2\u03ee\7\142\1\u03a1\3\142"+
824 "\1\u03a2\1\142\1\264\54\142\2\u03a1\4\142\11\140\1\0"+
825 "\14\140\1\142\21\140\1\u03f0\23\140\11\u03a5\1\u03f1\62\u03a5"+
826 "\11\u03a6\1\u03f2\62\u03a6\15\0\1\u03f3\77\0\1\u03f4\66\0"+
827 "\1\u03f5\136\0\1\u03f6\42\0\1\u03f7\124\0\1\u03f8\42\0"+
828 "\1\u03f9\60\0\1\u03fa\3\0\1\u03fb\3\0\1\u03fa\1\u03fb"+
829 "\75\0\1\u03fc\50\0\1\u03b0\3\0\1\u03fd\1\0\1\u03fe"+
830 "\54\0\2\u03b0\7\0\1\u03fd\62\0\2\u03fd\7\0\1\u03b0"+
831 "\3\0\1\u03b1\56\0\2\u03b0\4\0\11\u017a\1\0\14\u017a"+
832 "\1\u01de\14\u017a\1\u03ff\30\u017a\3\0\1\u0400\4\0\1\u0401"+
833 "\55\0\2\u0400\4\0\3\104\1\u0402\3\104\1\u0403\1\u0404"+
834 "\1\213\54\104\2\u0402\4\104\11\101\1\0\14\101\1\104"+
835 "\24\101\1\u0405\31\101\1\0\14\101\1\u0406\45\101\3\104"+
836 "\1\u03b8\3\104\1\u0407\1\104\1\u0408\54\104\2\u03b8\7\104"+
837 "\1\u0407\5\104\1\213\54\104\2\u0407\7\104\1\u03b8\3\104"+
838 "\1\u03b9\1\104\1\213\54\104\2\u03b8\4\104\11\101\1\0"+
839 "\14\101\1\u0409\56\101\1\0\14\101\1\104\14\101\1\u040a"+
840 "\30\101\11\u0193\1\u01fe\14\u0193\1\u040b\50\u0193\1\u040c\4\u0193"+
841 "\1\u040d\1\u01fe\1\u0193\1\u0268\12\u0193\1\u01ff\11\u0193\1\u0269"+
842 "\25\u0193\2\u040c\15\u0193\1\u01fe\14\u0193\1\u040e\45\u0193\26\0"+
843 "\1\u040f\50\0\1\u0410\4\0\1\u0411\55\0\2\u0410\57\0"+
844 "\1\u0412\23\0\1\u0413\3\0\1\u0414\1\u0415\55\0\2\u0413"+
845 "\7\0\1\u03c4\5\0\1\u03c5\54\0\2\u03c4\7\0\1\u0416"+
846 "\3\0\1\u0417\1\u0418\55\0\2\u0416\7\0\1\u03c7\5\0"+
847 "\1\u03c8\54\0\2\u03c7\7\0\1\u03c9\6\0\1\u03ca\53\0"+
848 "\2\u03c9\7\0\1\u0419\3\0\1\u041a\1\u041b\55\0\2\u0419"+
849 "\7\0\1\u03cb\6\0\1\u041c\53\0\2\u03cb\7\0\1\u03cb"+
850 "\62\0\2\u03cb\7\0\1\u03cd\5\0\1\u03ce\54\0\2\u03cd"+
851 "\7\0\1\u03cf\3\0\1\u041d\1\0\1\u041e\54\0\2\u03cf"+
852 "\7\0\1\u041d\62\0\2\u041d\7\0\1\u03cf\3\0\1\u03d0"+
853 "\56\0\2\u03cf\7\0\1\u03d2\3\0\1\u041f\1\0\1\u0420"+
854 "\54\0\2\u03d2\7\0\1\u041f\62\0\2\u041f\7\0\1\u03d2"+
855 "\3\0\1\u03d3\56\0\2\u03d2\4\0\3\u01ad\1\u03d5\3\u01ad"+
856 "\1\u0421\1\u01ad\1\u0422\54\u01ad\2\u03d5\7\u01ad\1\u0421\5\u01ad"+
857 "\1\u01b1\54\u01ad\2\u0421\7\u01ad\1\u03d5\3\u01ad\1\u03d6\1\u01ad"+
858 "\1\u01b1\54\u01ad\2\u03d5\4\u01ad\16\0\1\u0423\77\0\1\u0424"+
859 "\51\0\11\u01b4\1\u0220\14\u01b4\1\u0221\14\u01b4\1\u0425\30\u01b4"+
860 "\26\0\1\u0426\50\0\1\u0427\3\0\1\u0428\1\u0429\55\0"+
861 "\2\u0427\7\0\1\u03dd\6\0\1\u03de\53\0\2\u03dd\7\0"+
862 "\1\u042a\3\0\1\u042b\1\u042c\55\0\2\u042a\7\0\1\u042d"+
863 "\4\0\1\u042e\55\0\2\u042d\27\0\1\u042f\76\0\1\u0430"+
864 "\50\0\1\u03e2\3\0\1\u0431\1\0\1\u0432\54\0\2\u03e2"+
865 "\7\0\1\u0431\62\0\2\u0431\7\0\1\u03e2\3\0\1\u03e3"+
866 "\56\0\2\u03e2\4\0\3\142\1\u03e5\3\142\1\u0433\1\142"+
867 "\1\u0434\54\142\2\u03e5\7\142\1\u0433\5\142\1\264\54\142"+
868 "\2\u0433\7\142\1\u03e5\3\142\1\u03e6\1\142\1\264\54\142"+
869 "\2\u03e5\4\142\11\140\1\0\4\140\1\u0435\7\140\1\142"+
870 "\45\140\3\142\1\u03e9\5\142\1\u03ea\54\142\2\u03e9\4\142"+
871 "\11\140\1\0\2\140\1\u0436\11\140\1\142\45\140\3\142"+
872 "\1\u03ec\5\142\1\u03ed\54\142\2\u03ec\7\142\1\u03ee\5\142"+
873 "\1\u03ef\54\142\2\u03ee\4\142\11\140\1\0\4\140\1\u0437"+
874 "\7\140\1\142\45\140\16\0\1\u0438\77\0\1\u0439\72\0"+
875 "\1\u043a\100\0\1\u043b\45\0\11\u03f7\1\u043c\62\u03f7\16\0"+
876 "\1\u043d\70\0\1\u043e\3\0\1\u043f\3\0\1\u043e\1\u043f"+
877 "\63\0\1\u0440\77\0\1\u0441\53\0\11\u03fc\1\u0442\62\u03fc"+
878 "\3\0\1\u03fd\5\0\1\u03fe\54\0\2\u03fd\4\0\11\u017a"+
879 "\1\0\13\u017a\1\u0443\1\u01de\45\u017a\3\0\1\u0400\5\0"+
880 "\1\u0444\54\0\2\u0400\7\0\1\u0400\62\0\2\u0400\4\0"+
881 "\3\104\1\u0402\3\104\1\u0445\1\104\1\u0446\54\104\2\u0402"+
882 "\7\104\1\u0445\5\104\1\213\54\104\2\u0445\7\104\1\u0402"+
883 "\3\104\1\u0403\1\104\1\213\54\104\2\u0402\4\104\11\101"+
884 "\1\0\14\101\1\104\30\101\1\u0447\14\101\3\104\1\u0448"+
885 "\3\104\1\u0449\1\u044a\1\213\54\104\2\u0448\7\104\1\u0407"+
886 "\5\104\1\u0408\54\104\2\u0407\15\104\1\213\1\104\1\u044b"+
887 "\3\104\1\u044c\3\104\1\u044b\1\u044c\47\104\11\101\1\0"+
888 "\11\101\1\u044d\2\101\1\104\45\101\11\u0193\1\u01fe\1\u0193"+
889 "\1\u044e\3\u0193\1\u044f\3\u0193\1\u0450\1\u044f\1\u0193\1\u01ff"+
890 "\11\u0193\1\u0269\36\u0193\1\u040c\5\u0193\1\u0451\14\u0193\1\u01ff"+
891 "\37\u0193\2\u040c\7\u0193\1\u040c\5\u0193\1\u01fe\14\u0193\1\u01ff"+
892 "\37\u0193\2\u040c\7\u0193\1\u0452\3\u0193\1\u0453\1\u0454\1\u01fe"+
893 "\1\u0193\1\u0268\12\u0193\1\u01ff\11\u0193\1\u0269\25\u0193\2\u0452"+
894 "\4\u0193\3\0\1\u0455\3\0\1\u0456\1\u0457\55\0\2\u0455"+
895 "\7\0\1\u0410\5\0\1\u0458\54\0\2\u0410\7\0\1\u0410"+
896 "\62\0\2\u0410\32\0\1\u0459\50\0\1\u0413\3\0\1\u045a"+
897 "\1\0\1\u045b\54\0\2\u0413\7\0\1\u045a\62\0\2\u045a"+
898 "\7\0\1\u0413\3\0\1\u0414\56\0\2\u0413\7\0\1\u0416"+
899 "\3\0\1\u045c\2\0\1\u045d\53\0\2\u0416\7\0\1\u045c"+
900 "\62\0\2\u045c\7\0\1\u0416\3\0\1\u0417\56\0\2\u0416"+
901 "\7\0\1\u0419\3\0\1\u045e\2\0\1\u045f\53\0\2\u0419"+
902 "\7\0\1\u045e\62\0\2\u045e\7\0\1\u0419\3\0\1\u041a"+
903 "\56\0\2\u0419\7\0\1\u0460\3\0\1\u0461\1\u0462\55\0"+
904 "\2\u0460\7\0\1\u041d\5\0\1\u041e\54\0\2\u041d\7\0"+
905 "\1\u041f\5\0\1\u0420\54\0\2\u041f\4\0\3\u01ad\1\u0421"+
906 "\5\u01ad\1\u0422\54\u01ad\2\u0421\4\u01ad\11\0\1\u0463\100\0"+
907 "\1\u0423\6\0\1\u0423\46\0\11\u01b4\1\u0220\13\u01b4\1\u0464"+
908 "\1\u0221\45\u01b4\3\0\1\u0465\3\0\1\u0466\1\u0467\55\0"+
909 "\2\u0465\7\0\1\u0427\3\0\1\u0468\2\0\1\u0469\53\0"+
910 "\2\u0427\7\0\1\u0468\62\0\2\u0468\7\0\1\u0427\3\0"+
911 "\1\u0428\56\0\2\u0427\7\0\1\u042a\3\0\1\u046a\2\0"+
912 "\1\u046b\53\0\2\u042a\7\0\1\u046a\62\0\2\u046a\7\0"+
913 "\1\u042a\3\0\1\u042b\56\0\2\u042a\7\0\1\u042d\5\0"+
914 "\1\u046c\54\0\2\u042d\7\0\1\u042d\62\0\2\u042d\47\0"+
915 "\1\u046d\33\0\1\u046e\3\0\1\u046f\1\u0470\55\0\2\u046e"+
916 "\7\0\1\u0431\5\0\1\u0432\54\0\2\u0431\4\0\3\142"+
917 "\1\u0433\5\142\1\u0434\54\142\2\u0433\4\142\11\140\1\0"+
918 "\2\140\1\u0471\11\140\1\142\56\140\1\0\14\140\1\u0472"+
919 "\56\140\1\0\14\140\1\u0473\45\140\11\0\1\u0474\100\0"+
920 "\1\u0438\6\0\1\u0438\130\0\1\u0475\11\0\11\u043b\1\u0476"+
921 "\62\u043b\26\0\1\u0477\61\0\1\u0478\77\0\1\u0479\70\0"+
922 "\1\u047a\77\0\1\u047b\52\0\11\u017a\1\0\14\u017a\1\u01de"+
923 "\24\u017a\1\u047c\20\u017a\3\104\1\u0445\5\104\1\u0446\54\104"+
924 "\2\u0445\4\104\11\101\1\0\7\101\1\u047d\4\101\1\104"+
925 "\45\101\3\104\1\u0448\3\104\1\u047e\1\104\1\u047f\54\104"+
926 "\2\u0448\7\104\1\u047e\5\104\1\213\54\104\2\u047e\7\104"+
927 "\1\u0448\3\104\1\u0449\1\104\1\213\54\104\2\u0448\15\104"+
928 "\1\213\2\104\1\u0480\70\104\1\213\6\104\1\u0481\53\104"+
929 "\11\101\1\0\14\101\1\104\20\101\1\u0482\24\101\11\u0193"+
930 "\1\u01fe\2\u0193\1\u0483\10\u0193\1\u02c4\1\u01ff\14\u0193\1\u02c5"+
931 "\41\u0193\1\u01fe\6\u0193\1\u0484\5\u0193\1\u01ff\56\u0193\1\u01fe"+
932 "\2\u0193\1\u0483\11\u0193\1\u01ff\50\u0193\1\u0452\3\u0193\1\u0485"+
933 "\1\u0193\1\u0486\14\u0193\1\u01ff\37\u0193\2\u0452\7\u0193\1\u0485"+
934 "\5\u0193\1\u01fe\14\u0193\1\u01ff\37\u0193\2\u0485\7\u0193\1\u0452"+
935 "\3\u0193\1\u0453\1\u0193\1\u01fe\14\u0193\1\u01ff\37\u0193\2\u0452"+
936 "\4\u0193\3\0\1\u0455\3\0\1\u0487\2\0\1\u0488\53\0"+
937 "\2\u0455\7\0\1\u0487\62\0\2\u0487\7\0\1\u0455\3\0"+
938 "\1\u0456\56\0\2\u0455\7\0\1\u0489\3\0\1\u048a\1\u048b"+
939 "\55\0\2\u0489\7\0\1\u045a\5\0\1\u045b\54\0\2\u045a"+
940 "\7\0\1\u045c\6\0\1\u045d\53\0\2\u045c\5\0\1\u048c"+
941 "\11\0\13\u048c\1\0\13\u048c\1\0\23\u048c\2\0\4\u048c"+
942 "\3\0\1\u045e\6\0\1\u045f\53\0\2\u045e\7\0\1\u048d"+
943 "\3\0\1\u048e\1\u048f\55\0\2\u048d\7\0\1\u0460\3\0"+
944 "\1\u0490\2\0\1\u0491\53\0\2\u0460\7\0\1\u0490\62\0"+
945 "\2\u0490\7\0\1\u0460\3\0\1\u0461\56\0\2\u0460\4\0"+
946 "\11\u01b4\1\u0220\14\u01b4\1\u0221\24\u01b4\1\u0492\20\u01b4\3\0"+
947 "\1\u0465\3\0\1\u0493\2\0\1\u0494\53\0\2\u0465\7\0"+
948 "\1\u0493\62\0\2\u0493\7\0\1\u0465\3\0\1\u0466\56\0"+
949 "\2\u0465\7\0\1\u0468\6\0\1\u0469\53\0\2\u0468\7\0"+
950 "\1\u0495\3\0\1\u0496\1\u0497\55\0\2\u0495\7\0\1\u046a"+
951 "\6\0\1\u046b\53\0\2\u046a\7\0\1\u0498\3\0\1\u0499"+
952 "\1\u049a\55\0\2\u0498\31\0\1\u049b\51\0\1\u046e\3\0"+
953 "\1\u049c\1\0\1\u049d\54\0\2\u046e\7\0\1\u049c\62\0"+
954 "\2\u049c\7\0\1\u046e\3\0\1\u046f\56\0\2\u046e\4\0"+
955 "\11\140\1\0\14\140\1\u049e\45\140\3\142\1\u049f\3\142"+
956 "\1\u04a0\1\u04a1\1\264\54\142\2\u049f\4\142\11\u0473\1\u04a2"+
957 "\62\u0473\26\0\1\u04a3\60\0\1\u04a4\3\0\1\u04a5\3\0"+
958 "\1\u04a4\1\u04a5\64\0\1\u04a6\77\0\1\u04a7\70\0\1\u04a8"+
959 "\77\0\1\u04a9\51\0\11\u017a\1\0\14\u017a\1\u04aa\45\u017a"+
960 "\11\101\1\0\4\101\1\u04ab\7\101\1\104\45\101\3\104"+
961 "\1\u047e\5\104\1\u047f\54\104\2\u047e\15\104\1\213\3\104"+
962 "\1\u04ac\67\104\1\213\7\104\1\u04ad\52\104\11\101\1\0"+
963 "\14\101\1\u04ae\45\101\11\u0193\1\u01fe\3\u0193\1\u04af\10\u0193"+
964 "\1\u01ff\56\u0193\1\u01fe\7\u0193\1\u04b0\4\u0193\1\u01ff\50\u0193"+
965 "\1\u0485\5\u0193\1\u0486\14\u0193\1\u01ff\37\u0193\2\u0485\4\u0193"+
966 "\3\0\1\u0487\6\0\1\u0488\53\0\2\u0487\7\0\1\u04b1"+
967 "\3\0\1\u04b2\1\u04b3\55\0\2\u04b1\7\0\1\u0489\3\0"+
968 "\1\u04b4\2\0\1\u04b5\53\0\2\u0489\7\0\1\u04b4\62\0"+
969 "\2\u04b4\7\0\1\u0489\3\0\1\u048a\56\0\2\u0489\15\0"+
970 "\1\u04b6\65\0\1\u048d\3\0\1\u04b7\1\0\1\u04b8\54\0"+
971 "\2\u048d\7\0\1\u04b7\62\0\2\u04b7\7\0\1\u048d\3\0"+
972 "\1\u048e\56\0\2\u048d\7\0\1\u0490\6\0\1\u0491\53\0"+
973 "\2\u0490\5\0\1\u04b9\11\0\13\u04b9\1\0\13\u04b9\1\0"+
974 "\23\u04b9\2\0\4\u04b9\11\u01b4\1\u0220\14\u01b4\1\u04ba\45\u01b4"+
975 "\3\0\1\u0493\6\0\1\u0494\53\0\2\u0493\7\0\1\u04bb"+
976 "\3\0\1\u04bc\1\u04bd\55\0\2\u04bb\7\0\1\u0495\3\0"+
977 "\1\u04be\2\0\1\u04bf\53\0\2\u0495\7\0\1\u04be\62\0"+
978 "\2\u04be\7\0\1\u0495\3\0\1\u0496\56\0\2\u0495\7\0"+
979 "\1\u0498\3\0\1\u04c0\1\0\1\u04c1\54\0\2\u0498\7\0"+
980 "\1\u04c0\62\0\2\u04c0\7\0\1\u0498\3\0\1\u0499\56\0"+
981 "\2\u0498\57\0\1\u04c2\23\0\1\u049c\5\0\1\u049d\54\0"+
982 "\2\u049c\4\0\3\142\1\u04c3\3\142\1\u04c4\1\u04c5\1\264"+
983 "\54\142\2\u04c3\7\142\1\u049f\3\142\1\u04c6\1\142\1\u04c7"+
984 "\54\142\2\u049f\7\142\1\u04c6\5\142\1\264\54\142\2\u04c6"+
985 "\7\142\1\u049f\3\142\1\u04a0\1\142\1\264\54\142\2\u049f"+
986 "\4\142\13\0\1\u04c8\3\0\1\u04c9\3\0\1\u04c8\1\u04c9"+
987 "\63\0\1\u04ca\77\0\1\u04cb\71\0\1\u04cc\77\0\1\u04cd"+
988 "\62\0\1\u04ce\100\0\1\u04a8\6\0\1\u04a8\46\0\3\u017a"+
989 "\1\u04cf\3\u017a\1\u04d0\1\u04d1\1\0\14\u017a\1\u01de\16\u017a"+
990 "\1\u0251\20\u017a\2\u04cf\4\u017a\11\101\1\0\14\101\1\u04d2"+
991 "\45\101\11\104\1\213\4\104\1\u04d3\66\104\1\213\10\104"+
992 "\1\u04d4\54\104\1\u04d5\4\104\1\u04d6\1\213\54\104\2\u04d5"+
993 "\4\104\11\u0193\1\u01fe\4\u0193\1\u04d7\7\u0193\1\u01ff\56\u0193"+
994 "\1\u01fe\10\u0193\1\u04d8\3\u0193\1\u01ff\45\u0193\3\0\1\u04b1"+
995 "\3\0\1\u04d9\2\0\1\u04da\53\0\2\u04b1\7\0\1\u04d9"+
996 "\62\0\2\u04d9\7\0\1\u04b1\3\0\1\u04b2\56\0\2\u04b1"+
997 "\7\0\1\u04b4\6\0\1\u04b5\53\0\2\u04b4\7\0\1\u04db"+
998 "\3\0\1\u04dc\1\u04dd\55\0\2\u04db\7\0\1\u04b7\5\0"+
999 "\1\u04b8\54\0\2\u04b7\15\0\1\u04de\62\0\3\u01b4\1\u04df"+
1000 "\3\u01b4\1\u04e0\1\u04e1\1\u0220\14\u01b4\1\u0221\16\u01b4\1\u028c"+
1001 "\20\u01b4\2\u04df\4\u01b4\3\0\1\u04bb\3\0\1\u04e2\2\0"+
1002 "\1\u04e3\53\0\2\u04bb\7\0\1\u04e2\62\0\2\u04e2\7\0"+
1003 "\1\u04bb\3\0\1\u04bc\56\0\2\u04bb\7\0\1\u04be\6\0"+
1004 "\1\u04bf\53\0\2\u04be\7\0\1\u04e4\3\0\1\u04e5\1\u04e6"+
1005 "\55\0\2\u04e4\7\0\1\u04c0\5\0\1\u04c1\54\0\2\u04c0"+
1006 "\32\0\1\u04e7\45\0\3\142\1\u04c3\3\142\1\u04e8\1\142"+
1007 "\1\u04e9\54\142\2\u04c3\7\142\1\u04e8\5\142\1\264\54\142"+
1008 "\2\u04e8\7\142\1\u04c3\3\142\1\u04c4\1\142\1\264\54\142"+
1009 "\2\u04c3\7\142\1\u04c6\5\142\1\u04c7\54\142\2\u04c6\4\142"+
1010 "\14\0\1\u04ea\77\0\1\u04eb\70\0\1\u04ec\77\0\1\u04ed"+
1011 "\63\0\1\u04ee\100\0\1\u04cc\6\0\1\u04cc\46\0\3\u017a"+
1012 "\1\u04cf\3\u017a\1\u04ef\1\u017a\1\0\1\u04f0\13\u017a\1\u01de"+
1013 "\37\u017a\2\u04cf\7\u017a\1\u04ef\5\u017a\1\0\14\u017a\1\u01de"+
1014 "\37\u017a\2\u04ef\7\u017a\1\u04cf\3\u017a\1\u04d0\1\u017a\1\0"+
1015 "\14\u017a\1\u01de\37\u017a\2\u04cf\4\u017a\3\104\1\u04f1\3\104"+
1016 "\1\u04f2\1\u04f3\1\213\54\104\2\u04f1\15\104\1\u04f4\73\104"+
1017 "\1\213\4\104\1\u04d3\6\104\1\u04d3\51\104\1\u04d5\5\104"+
1018 "\1\u04f5\54\104\2\u04d5\7\104\1\u04d5\5\104\1\213\54\104"+
1019 "\2\u04d5\4\104\11\u0193\1\u04f6\14\u0193\1\u01ff\56\u0193\1\u01fe"+
1020 "\4\u0193\1\u04d7\6\u0193\1\u04d7\1\u01ff\45\u0193\3\0\1\u04d9"+
1021 "\6\0\1\u04da\53\0\2\u04d9\7\0\1\u04f7\3\0\1\u04f8"+
1022 "\1\u04f9\55\0\2\u04f7\7\0\1\u04db\3\0\1\u04fa\2\0"+
1023 "\1\u04fb\53\0\2\u04db\7\0\1\u04fa\62\0\2\u04fa\7\0"+
1024 "\1\u04db\3\0\1\u04dc\56\0\2\u04db\4\0\3\u01b4\1\u04df"+
1025 "\3\u01b4\1\u04fc\1\u01b4\1\u0220\1\u04fd\13\u01b4\1\u0221\37\u01b4"+
1026 "\2\u04df\7\u01b4\1\u04fc\5\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4"+
1027 "\2\u04fc\7\u01b4\1\u04df\3\u01b4\1\u04e0\1\u01b4\1\u0220\14\u01b4"+
1028 "\1\u0221\37\u01b4\2\u04df\4\u01b4\3\0\1\u04e2\6\0\1\u04e3"+
1029 "\53\0\2\u04e2\7\0\1\u04fe\3\0\1\u04ff\1\u0500\55\0"+
1030 "\2\u04fe\7\0\1\u04e4\3\0\1\u0501\1\0\1\u0502\54\0"+
1031 "\2\u04e4\7\0\1\u0501\62\0\2\u0501\7\0\1\u04e4\3\0"+
1032 "\1\u04e5\56\0\2\u04e4\7\0\1\u0503\3\0\1\u0504\1\u0505"+
1033 "\55\0\2\u0503\4\0\3\142\1\u04e8\5\142\1\u04e9\54\142"+
1034 "\2\u04e8\4\142\15\0\1\u0506\77\0\1\u0507\70\0\1\u0508"+
1035 "\77\0\1\u0509\51\0\3\u017a\1\u04ef\5\u017a\1\0\1\u04f0"+
1036 "\13\u017a\1\u01de\37\u017a\2\u04ef\7\u017a\1\u050a\3\u017a\1\u050b"+
1037 "\1\u050c\1\0\14\u017a\1\u01de\37\u017a\2\u050a\4\u017a\3\104"+
1038 "\1\u04f1\3\104\1\u050d\1\104\1\u050e\54\104\2\u04f1\7\104"+
1039 "\1\u050d\5\104\1\213\54\104\2\u050d\7\104\1\u04f1\3\104"+
1040 "\1\u04f2\1\104\1\213\54\104\2\u04f1\4\104\3\0\1\u04f7"+
1041 "\3\0\1\u050f\1\0\1\u0510\54\0\2\u04f7\7\0\1\u050f"+
1042 "\62\0\2\u050f\7\0\1\u04f7\3\0\1\u04f8\56\0\2\u04f7"+
1043 "\7\0\1\u04fa\6\0\1\u04fb\53\0\2\u04fa\7\0\1\u0511"+
1044 "\3\0\1\u0512\1\u0513\55\0\2\u0511\4\0\3\u01b4\1\u04fc"+
1045 "\5\u01b4\1\u0220\1\u04fd\13\u01b4\1\u0221\37\u01b4\2\u04fc\7\u01b4"+
1046 "\1\u0514\3\u01b4\1\u0515\1\u0516\1\u0220\14\u01b4\1\u0221\37\u01b4"+
1047 "\2\u0514\4\u01b4\3\0\1\u04fe\3\0\1\u0517\1\0\1\u0518"+
1048 "\54\0\2\u04fe\7\0\1\u0517\62\0\2\u0517\7\0\1\u04fe"+
1049 "\3\0\1\u04ff\56\0\2\u04fe\7\0\1\u0501\5\0\1\u0502"+
1050 "\54\0\2\u0501\7\0\1\u0503\3\0\1\u0519\1\0\1\u051a"+
1051 "\54\0\2\u0503\7\0\1\u0519\62\0\2\u0519\7\0\1\u0503"+
1052 "\3\0\1\u0504\56\0\2\u0503\22\0\1\u051b\77\0\1\u051c"+
1053 "\62\0\1\u051d\100\0\1\u0508\6\0\1\u0508\46\0\3\u017a"+
1054 "\1\u050a\3\u017a\1\u051e\1\u017a\1\0\1\u051f\13\u017a\1\u01de"+
1055 "\37\u017a\2\u050a\7\u017a\1\u051e\5\u017a\1\0\14\u017a\1\u01de"+
1056 "\37\u017a\2\u051e\7\u017a\1\u050a\3\u017a\1\u050b\1\u017a\1\0"+
1057 "\14\u017a\1\u01de\37\u017a\2\u050a\4\u017a\3\104\1\u050d\5\104"+
1058 "\1\u050e\54\104\2\u050d\4\104\3\0\1\u050f\5\0\1\u0510"+
1059 "\54\0\2\u050f\7\0\1\u0511\3\0\1\u0520\1\0\1\u0521"+
1060 "\54\0\2\u0511\7\0\1\u0520\62\0\2\u0520\7\0\1\u0511"+
1061 "\3\0\1\u0512\56\0\2\u0511\4\0\3\u01b4\1\u0514\3\u01b4"+
1062 "\1\u0522\1\u01b4\1\u0220\1\u0523\13\u01b4\1\u0221\37\u01b4\2\u0514"+
1063 "\7\u01b4\1\u0522\5\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u0522"+
1064 "\7\u01b4\1\u0514\3\u01b4\1\u0515\1\u01b4\1\u0220\14\u01b4\1\u0221"+
1065 "\37\u01b4\2\u0514\4\u01b4\3\0\1\u0517\5\0\1\u0518\54\0"+
1066 "\2\u0517\7\0\1\u0519\5\0\1\u051a\54\0\2\u0519\15\0"+
1067 "\1\u0524\100\0\1\u051b\6\0\1\u051b\46\0\3\u017a\1\u051e"+
1068 "\5\u017a\1\0\1\u051f\13\u017a\1\u01de\37\u017a\2\u051e\7\u017a"+
1069 "\1\u0525\3\u017a\1\u0526\1\u0527\1\0\14\u017a\1\u01de\37\u017a"+
1070 "\2\u0525\4\u017a\3\0\1\u0520\5\0\1\u0521\54\0\2\u0520"+
1071 "\4\0\3\u01b4\1\u0522\5\u01b4\1\u0220\1\u0523\13\u01b4\1\u0221"+
1072 "\37\u01b4\2\u0522\7\u01b4\1\u0528\3\u01b4\1\u0529\1\u052a\1\u0220"+
1073 "\14\u01b4\1\u0221\37\u01b4\2\u0528\4\u01b4\3\u017a\1\u0525\3\u017a"+
1074 "\1\u052b\1\u017a\1\0\14\u017a\1\u052c\37\u017a\2\u0525\7\u017a"+
1075 "\1\u052b\5\u017a\1\0\14\u017a\1\u01de\37\u017a\2\u052b\7\u017a"+
1076 "\1\u0525\3\u017a\1\u0526\1\u017a\1\0\14\u017a\1\u01de\37\u017a"+
1077 "\2\u0525\4\u017a\3\u01b4\1\u0528\3\u01b4\1\u052d\1\u01b4\1\u0220"+
1078 "\14\u01b4\1\u052e\37\u01b4\2\u0528\7\u01b4\1\u052d\5\u01b4\1\u0220"+
1079 "\14\u01b4\1\u0221\37\u01b4\2\u052d\7\u01b4\1\u0528\3\u01b4\1\u0529"+
1080 "\1\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u0528\4\u01b4\3\u017a"+
1081 "\1\u052b\5\u017a\1\0\14\u017a\1\u052c\37\u017a\2\u052b\15\u017a"+
1082 "\1\0\14\u017a\1\u01de\1\u017a\1\u052f\14\u017a\1\u0251\26\u017a"+
1083 "\3\u01b4\1\u052d\5\u01b4\1\u0220\14\u01b4\1\u052e\37\u01b4\2\u052d"+
1084 "\15\u01b4\1\u0220\14\u01b4\1\u0221\1\u01b4\1\u0530\14\u01b4\1\u028c"+
1085 "\26\u01b4\11\u017a\1\0\2\u017a\1\u0531\11\u017a\1\u01de\45\u017a"+
1086 "\11\u01b4\1\u0220\2\u01b4\1\u0532\11\u01b4\1\u0221\45\u01b4\11\u017a"+
1087 "\1\0\14\u017a\1\u01de\14\u017a\1\u0533\30\u017a\11\u01b4\1\u0220"+
1088 "\14\u01b4\1\u0221\14\u01b4\1\u0534\30\u01b4\11\u017a\1\0\4\u017a"+
1089 "\1\u0535\7\u017a\1\u01de\45\u017a\11\u01b4\1\u0220\4\u01b4\1\u0536"+
1090 "\7\u01b4\1\u0221\45\u01b4\11\u017a\1\0\14\u017a\1\u01de\24\u017a"+
1091 "\1\u0537\20\u017a\11\u01b4\1\u0220\14\u01b4\1\u0221\24\u01b4\1\u0538"+
1092 "\20\u01b4\11\u017a\1\0\11\u017a\1\u0539\2\u017a\1\u01de\45\u017a"+
1093 "\11\u01b4\1\u0220\11\u01b4\1\u053a\2\u01b4\1\u0221\45\u01b4\11\u017a"+
1094 "\1\0\6\u017a\1\u053b\5\u017a\1\u01de\45\u017a\11\u01b4\1\u0220"+
1095 "\6\u01b4\1\u053c\5\u01b4\1\u0221\45\u01b4\11\u017a\1\0\11\u017a"+
1096 "\1\u053d\2\u017a\1\u01de\45\u017a\11\u01b4\1\u0220\11\u01b4\1\u053e"+
1097 "\2\u01b4\1\u0221\45\u01b4\11\u017a\1\0\14\u017a\1\u01de\14\u017a"+
1098 "\1\u053f\30\u017a\11\u01b4\1\u0220\14\u01b4\1\u0221\14\u01b4\1\u0540"+
1099 "\30\u01b4\11\u017a\1\0\13\u017a\1\u0541\1\u01de\45\u017a\11\u01b4"+
1100 "\1\u0220\13\u01b4\1\u0542\1\u0221\45\u01b4\11\u017a\1\0\14\u017a"+
1101 "\1\u01de\24\u017a\1\u0543\20\u017a\11\u01b4\1\u0220\14\u01b4\1\u0221"+
1102 "\24\u01b4\1\u0544\20\u01b4\11\u017a\1\0\14\u017a\1\u0545\45\u017a"+
1103 "\11\u01b4\1\u0220\14\u01b4\1\u0546\45\u01b4\3\u017a\1\u0547\3\u017a"+
1104 "\1\u0548\1\u0549\1\0\14\u017a\1\u01de\16\u017a\1\u0251\20\u017a"+
1105 "\2\u0547\4\u017a\3\u01b4\1\u054a\3\u01b4\1\u054b\1\u054c\1\u0220"+
1106 "\14\u01b4\1\u0221\16\u01b4\1\u028c\20\u01b4\2\u054a\4\u01b4\3\u017a"+
1107 "\1\u0547\3\u017a\1\u054d\1\u017a\1\0\1\u054e\13\u017a\1\u01de"+
1108 "\37\u017a\2\u0547\7\u017a\1\u054d\5\u017a\1\0\14\u017a\1\u01de"+
1109 "\37\u017a\2\u054d\7\u017a\1\u0547\3\u017a\1\u0548\1\u017a\1\0"+
1110 "\14\u017a\1\u01de\37\u017a\2\u0547\4\u017a\3\u01b4\1\u054a\3\u01b4"+
1111 "\1\u054f\1\u01b4\1\u0220\1\u0550\13\u01b4\1\u0221\37\u01b4\2\u054a"+
1112 "\7\u01b4\1\u054f\5\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u054f"+
1113 "\7\u01b4\1\u054a\3\u01b4\1\u054b\1\u01b4\1\u0220\14\u01b4\1\u0221"+
1114 "\37\u01b4\2\u054a\4\u01b4\3\u017a\1\u054d\5\u017a\1\0\1\u054e"+
1115 "\13\u017a\1\u01de\37\u017a\2\u054d\7\u017a\1\u0551\3\u017a\1\u0552"+
1116 "\1\u0553\1\0\14\u017a\1\u01de\37\u017a\2\u0551\4\u017a\3\u01b4"+
1117 "\1\u054f\5\u01b4\1\u0220\1\u0550\13\u01b4\1\u0221\37\u01b4\2\u054f"+
1118 "\7\u01b4\1\u0554\3\u01b4\1\u0555\1\u0556\1\u0220\14\u01b4\1\u0221"+
1119 "\37\u01b4\2\u0554\4\u01b4\3\u017a\1\u0551\3\u017a\1\u0557\1\u017a"+
1120 "\1\0\1\u0558\13\u017a\1\u01de\37\u017a\2\u0551\7\u017a\1\u0557"+
1121 "\5\u017a\1\0\14\u017a\1\u01de\37\u017a\2\u0557\7\u017a\1\u0551"+
1122 "\3\u017a\1\u0552\1\u017a\1\0\14\u017a\1\u01de\37\u017a\2\u0551"+
1123 "\4\u017a\3\u01b4\1\u0554\3\u01b4\1\u0559\1\u01b4\1\u0220\1\u055a"+
1124 "\13\u01b4\1\u0221\37\u01b4\2\u0554\7\u01b4\1\u0559\5\u01b4\1\u0220"+
1125 "\14\u01b4\1\u0221\37\u01b4\2\u0559\7\u01b4\1\u0554\3\u01b4\1\u0555"+
1126 "\1\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u0554\4\u01b4\3\u017a"+
1127 "\1\u0557\5\u017a\1\0\1\u0558\13\u017a\1\u01de\37\u017a\2\u0557"+
1128 "\7\u017a\1\u055b\3\u017a\1\u055c\1\u055d\1\0\14\u017a\1\u01de"+
1129 "\37\u017a\2\u055b\4\u017a\3\u01b4\1\u0559\5\u01b4\1\u0220\1\u055a"+
1130 "\13\u01b4\1\u0221\37\u01b4\2\u0559\7\u01b4\1\u055e\3\u01b4\1\u055f"+
1131 "\1\u0560\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u055e\4\u01b4\3\u017a"+
1132 "\1\u055b\3\u017a\1\u0561\1\u017a\1\u0562\14\u017a\1\u01de\37\u017a"+
1133 "\2\u055b\7\u017a\1\u0561\5\u017a\1\0\14\u017a\1\u01de\37\u017a"+
1134 "\2\u0561\7\u017a\1\u055b\3\u017a\1\u055c\1\u017a\1\0\14\u017a"+
1135 "\1\u01de\37\u017a\2\u055b\4\u017a\3\u01b4\1\u055e\3\u01b4\1\u0563"+
1136 "\1\u01b4\1\u0220\14\u01b4\1\u0564\37\u01b4\2\u055e\7\u01b4\1\u0563"+
1137 "\5\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u0563\7\u01b4\1\u055e"+
1138 "\3\u01b4\1\u055f\1\u01b4\1\u0220\14\u01b4\1\u0221\37\u01b4\2\u055e"+
1139 "\4\u01b4\3\u017a\1\u0561\5\u017a\1\u0562\14\u017a\1\u01de\37\u017a"+
1140 "\2\u0561\4\u017a\3\u01b4\1\u0563\5\u01b4\1\u0220\14\u01b4\1\u0564"+
1141 "\37\u01b4\2\u0563\15\u01b4\1\u0220\14\u01b4\1\u0221\2\u01b4\1\u0565"+
1142 "\13\u01b4\1\u028c\37\u01b4\1\u0220\13\u01b4\1\u0566\1\u0221\56\u01b4"+
1143 "\1\u0220\3\u01b4\1\u0567\10\u01b4\1\u0221\56\u01b4\1\u0220\14\u01b4"+
1144 "\1\u0221\24\u01b4\1\u0568\31\u01b4\1\u0220\11\u01b4\1\u0569\2\u01b4"+
1145 "\1\u0221\56\u01b4\1\u0220\14\u01b4\1\u056a\45\u01b4\11\u056a\1\u056b"+
1146 "\62\u056a";
1147
1148 private static int [] zzUnpackTrans() {
1149 int [] result = new int[75600];
1150 int offset = 0;
1151 offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
1152 return result;
1153 }
1154
1155 private static int zzUnpackTrans(String packed, int offset, int [] result) {
1156 int i = 0;
1157 int j = offset;
1158 int l = packed.length();
1159 while (i < l) {
1160 int count = packed.charAt(i++);
1161 int value = packed.charAt(i++);
1162 value--;
1163 do result[j++] = value; while (--count > 0);
1164 }
1165 return j;
1166 }
1167
1168
1169
1170 private static final int ZZ_UNKNOWN_ERROR = 0;
1171 private static final int ZZ_NO_MATCH = 1;
1172 private static final int ZZ_PUSHBACK_2BIG = 2;
1173
1174
1175 private static final String ZZ_ERROR_MSG[] = {
1176 "Unkown internal scanner error",
1177 "Error: could not match input",
1178 "Error: pushback value was too large"
1179 };
1180
1181
1182
1183
1184 private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
1185
1186 private static final String ZZ_ATTRIBUTE_PACKED_0 =
1187 "\12\0\2\11\10\1\1\11\1\1\1\11\2\1\1\11"+
1188 "\2\1\1\11\2\1\1\11\2\1\1\11\2\1\1\11"+
1189 "\2\1\1\11\2\1\1\11\2\1\1\11\106\0\1\11"+
1190 "\1\0\3\11\1\0\2\11\15\0\1\11\50\0\1\11"+
1191 "\30\0\1\11\252\0\1\11\34\0\1\11\3\0\1\11"+
1192 "\27\0\1\11\35\0\1\11\26\0\1\11\6\0\1\11"+
1193 "\14\0\1\11\1\0\3\11\40\0\2\11\14\0\2\11"+
1194 "\23\0\2\11\20\0\1\11\2\0\2\11\4\0\1\11"+
1195 "\6\0\1\11\2\0\1\11\10\0\1\11\4\0\1\11"+
1196 "\5\0\1\11\27\0\1\11\6\0\1\11\11\0\1\11"+
1197 "\2\0\1\11\24\0\1\11\14\0\1\11\45\0\1\11"+
1198 "\16\0\2\11\17\0\1\11\17\0\1\11\2\0\1\11"+
1199 "\52\0\1\11\2\0\1\11\14\0\1\11\3\0\1\11"+
1200 "\6\0\1\11\13\0\1\11\11\0\1\11\10\0\1\11"+
1201 "\7\0\1\11\65\0\1\11\2\0\1\11\5\0\1\11"+
1202 "\33\0\1\11\2\0\1\11\1\0\1\11\1\0\2\11"+
1203 "\13\0\1\11\11\0\1\11\25\0\1\11\1\0\1\11"+
1204 "\1\0\1\11\17\0\1\11\1\0\1\11\7\0\1\11"+
1205 "\5\0\1\11\1\0\1\11\1\0\1\11\12\0\1\11"+
1206 "\6\0\1\11\2\0\1\11\7\0\1\11\10\0\1\11"+
1207 "\7\0\1\11\1\0\1\11\10\0\1\11\6\0\1\11"+
1208 "\26\0\1\11\4\0\1\11\23\0\1\11\1\0\1\11"+
1209 "\10\0\1\11\5\0\1\11\6\0\1\11\17\0\1\11"+
1210 "\12\0\1\11\4\0\1\11\5\0\3\11\13\0\1\11"+
1211 "\13\0\1\11\1\0\1\11\7\0\1\11\1\0\1\11"+
1212 "\2\0\1\11\3\0\1\11\2\0\1\11\75\0\1\11"+
1213 "\10\0\1\11";
1214
1215 private static int [] zzUnpackAttribute() {
1216 int [] result = new int[1387];
1217 int offset = 0;
1218 offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
1219 return result;
1220 }
1221
1222 private static int zzUnpackAttribute(String packed, int offset, int [] result) {
1223 int i = 0;
1224 int j = offset;
1225 int l = packed.length();
1226 while (i < l) {
1227 int count = packed.charAt(i++);
1228 int value = packed.charAt(i++);
1229 do result[j++] = value; while (--count > 0);
1230 }
1231 return j;
1232 }
1233
1234
1235 private java.io.Reader zzReader;
1236
1237
1238 private int zzState;
1239
1240
1241 private int zzLexicalState = YYINITIAL;
1242
1243
1244
1245 private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
1246
1247
1248 private int zzMarkedPos;
1249
1250
1251 private int zzCurrentPos;
1252
1253
1254 private int zzStartRead;
1255
1256
1257
1258 private int zzEndRead;
1259
1260
1261 private int yyline;
1262
1263
1264 private int yychar;
1265
1266
1267
1268
1269
1270 private int yycolumn;
1271
1272
1273
1274
1275 private boolean zzAtBOL = true;
1276
1277
1278 private boolean zzAtEOF;
1279
1280
1281 private boolean zzEOFDone;
1282
1283
1284
1285 public static final String DELIMITERS_STANDARD = " {}";
1286 public static final String DELIMITERS_EXTENDED = " {},";
1287
1288
1289 protected Map<Integer, Double> mapIntIDDouble = null;
1290
1291
1292 protected Map<Integer, Double> mapIntDouble = null;
1293
1294
1295 protected UnrealIdTranslator translator = null;
1296
1297
1298 protected IYylexObserver observer = null;
1299
1300
1301 protected double udkTime = 0;
1302
1303 public Yylex(){
1304 }
1305
1306 public void setReader(Reader reader) {
1307
1308 yyreset(reader);
1309 }
1310
1311 public void close() throws java.io.IOException {
1312
1313 yyclose();
1314 }
1315
1316 public void setObserver(IYylexObserver observer) {
1317 this.observer = observer;
1318 }
1319
1320
1321
1322
1323
1324 public void setTranslator(UnrealIdTranslator translator) {
1325 this.translator = translator;
1326 }
1327
1328 public void setTime(IWorldObject obj, double time) {
1329 try {
1330 Method m = obj.getClass().getDeclaredMethod("setTime", new Class[]{double.class});
1331 m.setAccessible(true);
1332 m.invoke(obj, udkTime);
1333 } catch (Exception e) {
1334 exceptionOccured(e, "can't set Time to message " + obj.getClass());
1335 }
1336 }
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347 protected void exceptionOccured(Exception e, String info) {
1348 IYylexObserver currentObserver = this.observer;
1349 if (currentObserver != null) {
1350 currentObserver.exception(e, info != null ? info : "--empty info--");
1351 } else {
1352 System.out.println("Yylex exception: " + info);
1353 if (e != null) e.printStackTrace();
1354 }
1355 }
1356
1357
1358
1359
1360 protected void warning(String info) {
1361 IYylexObserver currentObserver = this.observer;
1362 if (currentObserver != null) {
1363 currentObserver.warning(info != null ? info : "--empty warning--");
1364 } else {
1365 System.out.println("Yylex warning: " + info);
1366 }
1367 }
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377 protected String getToken(String text, String delimiters, int num) {
1378 StringTokenizer st = new StringTokenizer(text, delimiters);
1379 while (num-- > 0 && st.hasMoreTokens()) {
1380 st.nextToken();
1381 }
1382 try {
1383 return st.nextToken();
1384 } catch (Exception e) {
1385 exceptionOccured(e, "Can't get " + num + "-th token from text '"+text+"' using delimiters '"+delimiters+"'.");
1386 return null;
1387 }
1388 }
1389
1390
1391
1392
1393
1394
1395
1396
1397 protected String getToken(String text, int num) {
1398 return getToken(text, DELIMITERS_STANDARD, num);
1399 }
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409 protected int intValue( String txt ) {
1410 try {
1411 return Integer.parseInt(getToken(txt, 1));
1412 } catch (NullPointerException e) {
1413 warning("Can't get int token from text '"+txt+"'.");
1414 return -1;
1415 } catch (NumberFormatException e) {
1416 exceptionOccured(e, "Wrong int number format in '"+txt+".");
1417 return -1;
1418 } catch (Exception e) {
1419 exceptionOccured(e, "Can't get int token from text '"+txt+"'.");
1420 return -1;
1421 }
1422 }
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433 protected double doubleValue(String txt) {
1434 try {
1435 return Double.parseDouble(getToken(txt, 1));
1436 } catch (NullPointerException e) {
1437 warning("Can't get double token from text '"+txt+"'.");
1438 return -1;
1439 } catch (NumberFormatException e) {
1440 exceptionOccured(e, "Wrong double number format in '"+txt+".");
1441 return -1;
1442 } catch (Exception e) {
1443 exceptionOccured(e, "Can't get double token from text '"+txt+"'.");
1444 return -1;
1445 }
1446 }
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495 protected void addRangeRange( String txt ) {
1496
1497 ((SensorMessage)actObj).RangeRanges.put(getToken(txt, 1), Double.parseDouble(getToken(txt, 3)));
1498 if(((SensorMessage)actObj).Name==null)
1499 {
1500 ((SensorMessage)actObj).Name=((SensorMessage)actObj).RangeRanges.keySet().iterator().next();
1501 }
1502
1503 }
1504
1505
1506
1507
1508
1509
1510
1511 protected void addTick( String txt ) {
1512
1513 ((SensorMessage)actObj).EncoderTicks.put(getToken(txt, 1), Integer.parseInt(getToken(txt, 3)));
1514 if(((SensorMessage)actObj).Name==null)
1515 {
1516 ((SensorMessage)actObj).Name=((SensorMessage)actObj).EncoderTicks.keySet().iterator().next();
1517 }
1518
1519 }
1520
1521
1522
1523
1524
1525
1526
1527 protected void addTouch( String txt ) {
1528
1529 ((SensorMessage)actObj).Touches.put(getToken(txt, 1),Boolean.parseBoolean(getToken(txt, 3)));
1530 if(((SensorMessage)actObj).Name==null)
1531 {
1532 ((SensorMessage)actObj).Name=((SensorMessage)actObj).Touches.keySet().iterator().next();
1533 }
1534
1535 }
1536
1537
1538
1539
1540
1541
1542
1543 protected void addRanges( String txt ) {
1544 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1545
1546 int num = 1;
1547 while (num-- > 0 && st.hasMoreTokens()) {
1548 st.nextToken();
1549 }
1550
1551
1552
1553 while(st.hasMoreTokens()) {
1554 double token = new Double(st.nextToken()).doubleValue();
1555 ((SensorMessage)actObj).LaserRanges.add(token);
1556 }
1557 }
1558
1559
1560
1561
1562
1563
1564
1565 protected void addGeometry( String txt ) {
1566 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1567
1568 int num = 1;
1569 while (num-- > 0 && st.hasMoreTokens()) {
1570 st.nextToken();
1571 }
1572
1573
1574
1575 if(st.hasMoreTokens()) {
1576
1577 SensorMount s = new SensorMount();
1578 s.setName(st.nextToken());
1579 if(((GeometryMessage)actObj).Name==null)
1580 {
1581 ((GeometryMessage)actObj).Name=s.getName();
1582 }
1583 st.nextToken();
1584
1585
1586 double x=Double.parseDouble(st.nextToken());
1587 double y=Double.parseDouble(st.nextToken());
1588 double z=Double.parseDouble(st.nextToken());
1589 Location loc=new Location(x,y,z);
1590 s.setLocation(loc);
1591
1592 st.nextToken();
1593 double roll=Double.parseDouble(st.nextToken());
1594 double pitch=Double.parseDouble(st.nextToken());
1595 double yaw=Double.parseDouble(st.nextToken());
1596 Rotation orientation=new Rotation(pitch, yaw, roll);
1597 s.setOrientation(orientation);
1598
1599 st.nextToken();
1600 s.setMount(st.nextToken());
1601
1602 ((GeometryMessage)actObj).SenEffGeo.add(s);
1603 }
1604 }
1605
1606
1607
1608
1609
1610
1611
1612 protected OdometryPose odometryValue(String txt) {
1613 double[] triple = getTripleDouble(txt);
1614 try {
1615 return new OdometryPose(triple[0], triple[1], triple[2]);
1616 } catch (NullPointerException e) {
1617 warning("Can't get OdometryPose from text '"+txt+"'.");
1618 return new OdometryPose();
1619 } catch (Exception e) {
1620 exceptionOccured(e, "Can't get OdometryPose from text '"+txt+"'.");
1621 return null;
1622 }
1623 }
1624
1625
1626
1627
1628
1629
1630
1631
1632 protected double[] getTripleDouble( String txt ) {
1633 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1634
1635 int num = 1;
1636 while (num-- > 0 && st.hasMoreTokens()) {
1637 st.nextToken();
1638 }
1639
1640
1641 try {
1642 double t1,t2,t3;
1643 t1 = new Double(st.nextToken()).doubleValue();
1644 t2 = new Double(st.nextToken()).doubleValue();
1645 t3 = new Double(st.nextToken()).doubleValue();
1646 return new double[]{t1,t2,t3};
1647 } catch (NumberFormatException e) {
1648 exceptionOccured(e, "Wrong double number format in '"+txt+".");
1649 return null;
1650 } catch (Exception e) {
1651 exceptionOccured(e, "Can't get triple from text '"+txt+"'.");
1652 return null;
1653 }
1654 }
1655
1656
1657
1658
1659
1660
1661
1662
1663 protected double[] getDoubleDouble( String txt ) {
1664 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1665
1666 int num = 1;
1667 while (num-- > 0 && st.hasMoreTokens()) {
1668 st.nextToken();
1669 }
1670
1671
1672 try {
1673 double t1,t2;
1674 t1 = new Double(st.nextToken()).doubleValue();
1675 t2 = new Double(st.nextToken()).doubleValue();
1676 return new double[]{t1,t2};
1677 } catch (NumberFormatException e) {
1678 exceptionOccured(e, "Wrong double number format in '"+txt+".");
1679 return null;
1680 } catch (Exception e) {
1681 exceptionOccured(e, "Can't get triple from text '"+txt+"'.");
1682 return null;
1683 }
1684 }
1685
1686
1687
1688
1689
1690
1691
1692
1693 protected Longitude longitudeValue( String txt ) {
1694 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1695
1696 int num = 1;
1697 while (num-- > 0 && st.hasMoreTokens()) {
1698 st.nextToken();
1699 }
1700
1701
1702 try {
1703 int degree; double minute; char cardinal;
1704 degree=new Integer(st.nextToken()).intValue();
1705 minute=new Double(st.nextToken()).doubleValue();
1706 cardinal=new Character(st.nextToken().charAt(0)).charValue();
1707 return new Longitude(degree, minute, cardinal);
1708
1709 } catch (NumberFormatException e) {
1710 exceptionOccured(e, "Wrong number format in '"+txt+".");
1711 return null;
1712 } catch (Exception e) {
1713 exceptionOccured(e, "Can't get Longitude/Latitude from text '"+txt+"'.");
1714 return null;
1715 }
1716 }
1717
1718
1719
1720
1721
1722
1723
1724
1725 protected Latitude latitudeValue( String txt ) {
1726 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1727
1728 int num = 1;
1729 while (num-- > 0 && st.hasMoreTokens()) {
1730 st.nextToken();
1731 }
1732
1733
1734 try {
1735 int degree; double minute; char cardinal;
1736 degree=new Integer(st.nextToken()).intValue();
1737 minute=new Double(st.nextToken()).doubleValue();
1738 cardinal=new Character(st.nextToken().charAt(0)).charValue();
1739 return new Latitude(degree, minute, cardinal);
1740
1741 } catch (NumberFormatException e) {
1742 exceptionOccured(e, "Wrong number format in '"+txt+".");
1743 return null;
1744 } catch (Exception e) {
1745 exceptionOccured(e, "Can't get Longitude/Latitude from text '"+txt+"'.");
1746 return null;
1747 }
1748 }
1749
1750
1751
1752
1753
1754
1755
1756
1757 protected Vector3d vector3fValue(String txt) {
1758 double[] triple = getTripleDouble(txt);
1759 try {
1760 return new Vector3d(triple[0], triple[1], triple[2]);
1761 } catch (NullPointerException e) {
1762 warning("Can't get Vector3d from text '"+txt+"'.");
1763 return new Vector3d(0,0,0);
1764 } catch (Exception e) {
1765 exceptionOccured(e, "Can't get Vector3d from text '"+txt+"'.");
1766 return null;
1767 }
1768 }
1769
1770
1771
1772
1773
1774
1775
1776 protected Point3d point3fValue(String txt) {
1777 double[] triple = getTripleDouble(txt);
1778 try {
1779 return new Point3d(triple[0], triple[1], triple[2]);
1780 } catch (NullPointerException e) {
1781 warning("Can't get Point3d from text '"+txt+"'.");
1782 return new Point3d(0,0,0);
1783 } catch (Exception e) {
1784 exceptionOccured(e, "Can't get Point3d from text '"+txt+"'.");
1785 return null;
1786 }
1787 }
1788
1789
1790
1791
1792
1793
1794
1795
1796 protected void addConfPair( String txt ) {
1797 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_STANDARD);
1798
1799 if(st.hasMoreTokens()) {
1800 try {
1801 ((ConfigurationMessage)actObj).Features.put(st.nextToken(), st.nextToken());
1802
1803 } catch (Exception e) {
1804 exceptionOccured(e, "Can't add pair Name/Value from text '"+txt+"'.");
1805 }
1806 }
1807 }
1808
1809
1810
1811
1812
1813
1814
1815 protected void addStaPair( String txt ) {
1816 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_STANDARD);
1817
1818 if(st.hasMoreTokens()) {
1819 try {
1820 ((StateMessage)actObj).PartsValues.put(st.nextToken(), st.nextToken());
1821
1822 } catch (Exception e) {
1823 exceptionOccured(e, "Can't add pair Name/Value from text '"+txt+"'.");
1824 }
1825 }
1826 }
1827
1828
1829
1830
1831
1832
1833
1834 protected void addStartPose( String txt )
1835 {
1836 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1837
1838 if(st.hasMoreTokens())
1839 {
1840 try
1841 {
1842 st.nextToken();
1843 String name = st.nextToken();
1844
1845 st.nextToken();
1846 double x = Double.parseDouble(st.nextToken());
1847 double y = Double.parseDouble(st.nextToken());
1848 double z = Double.parseDouble(st.nextToken());
1849 Location loc = new Location(x, y, z);
1850
1851 st.nextToken();
1852 double roll = Double.parseDouble(st.nextToken());
1853 double pitch = Double.parseDouble(st.nextToken());
1854 double yaw = Double.parseDouble(st.nextToken());
1855 Rotation orientation = new Rotation(pitch, yaw, roll);
1856 ((NfoMessage) actObj).StartPoses.add(new StartPose(name, loc, orientation));
1857 }
1858 catch(Exception e)
1859 {
1860 exceptionOccured(e, "Can't add start pose from text '" + txt + "'.");
1861 }
1862 }
1863 }
1864
1865
1866
1867
1868
1869
1870
1871
1872 protected Point4d point4fValue(String txt) {
1873
1874 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1875
1876 int num = 1;
1877 while (num-- > 0 && st.hasMoreTokens()) {
1878 st.nextToken();
1879 }
1880
1881
1882 try {
1883 double t1,t2,t3,t4;
1884 t1 = new Double(st.nextToken()).doubleValue();
1885 t2 = new Double(st.nextToken()).doubleValue();
1886 t3 = new Double(st.nextToken()).doubleValue();
1887 t4 = new Double(st.nextToken()).doubleValue();
1888
1889 return new Point4d(t1,t2,t3,t4);
1890 } catch (NullPointerException e) {
1891 warning("Can't get Point4d from text '"+txt+"'.");
1892 return new Point4d(0,0,0,0);
1893 } catch (Exception e) {
1894 exceptionOccured(e, "Can't get Point4d from text '"+txt+"'.");
1895 return null;
1896 }
1897 }
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917 protected double[] getTriple( String txt ) {
1918 StringTokenizer st = new StringTokenizer(txt, DELIMITERS_EXTENDED);
1919
1920 int num = 1;
1921 while (num-- > 0 && st.hasMoreTokens()) {
1922 st.nextToken();
1923 }
1924
1925
1926 try {
1927 double t1,t2,t3;
1928 t1 = new Double(st.nextToken()).doubleValue();
1929 t2 = new Double(st.nextToken()).doubleValue();
1930 t3 = new Double(st.nextToken()).doubleValue();
1931 return new double[]{t1,t2,t3};
1932 } catch (NumberFormatException e) {
1933 exceptionOccured(e, "Wrong double number format in '"+txt+".");
1934 return null;
1935 } catch (Exception e) {
1936 exceptionOccured(e, "Can't get triple from text '"+txt+"'.");
1937 return null;
1938 }
1939 }
1940
1941
1942
1943
1944
1945
1946
1947 protected Location locationDoubleValue(String txt) {
1948 double[] triple = getTripleDouble(txt);
1949 try {
1950 return new Location(triple[0], triple[1], triple[2]);
1951 } catch (NullPointerException e) {
1952 warning("Can't get Location from text '"+txt+"'.");
1953 return new Location(0,0,0);
1954 } catch (Exception e) {
1955 exceptionOccured(e, "Can't get Location from text '"+txt+"'.");
1956 return null;
1957 }
1958 }
1959
1960
1961
1962
1963
1964
1965
1966 protected Point2d point2dDoubleValue(String txt) {
1967 double[] duble = getDoubleDouble(txt);
1968 try {
1969 return new Point2d(duble[0], duble[1]);
1970 } catch (NullPointerException e) {
1971 warning("Can't get Location from text '"+txt+"'.");
1972 return new Point2d();
1973 } catch (Exception e) {
1974 exceptionOccured(e, "Can't get Location from text '"+txt+"'.");
1975 return null;
1976 }
1977 }
1978
1979
1980
1981
1982
1983
1984
1985
1986 protected Velocity velocityValue(String txt) {
1987 double[] triple = getTriple(txt);
1988 try {
1989 return new Velocity(triple[0], triple[1], triple[2]);
1990 } catch (NullPointerException e) {
1991 warning("Can't get Velocity from text '"+txt+"'.");
1992 return new Velocity(0,0,0);
1993 } catch (Exception e) {
1994 exceptionOccured(e, "Can't get Velocity from text '"+txt+"'.");
1995 return null;
1996 }
1997 }
1998
1999
2000
2001
2002
2003
2004
2005 protected Rotation rotationValue(String txt) {
2006 double[] triple = getTriple(txt);
2007 try {
2008 return new Rotation(triple[1], triple[2], triple[0]);
2009 } catch (NullPointerException e) {
2010 warning("Can't get Rotation from text '"+txt+"'.");
2011 return new Rotation(0,0,0);
2012 } catch (Exception e) {
2013 exceptionOccured(e, "Can't get Rotation from text '"+txt+"'.");
2014 return null;
2015 }
2016 }
2017
2018
2019
2020
2021
2022
2023
2024 protected Point3d point3dValue(String txt) {
2025 double[] triple = getTriple(txt);
2026 try {
2027 return new Point3d(triple[0], triple[1], triple[2]);
2028 } catch (NullPointerException e) {
2029 warning("Can't get Point3d from text '"+txt+"'.");
2030 return new Point3d(0,0,0);
2031 } catch (Exception e) {
2032 exceptionOccured(e, "Can't get Point3d from text '"+txt+"'.");
2033 return null;
2034 }
2035 }
2036
2037
2038
2039
2040
2041
2042
2043 protected Vector3d vector3dValue(String txt) {
2044 double[] triple = getTriple(txt);
2045 try {
2046 return new Vector3d(triple[0], triple[1], triple[2]);
2047 } catch (NullPointerException e) {
2048 warning("Can't get Vector3d from text '"+txt+"'.");
2049 return new Vector3d(0,0,0);
2050 } catch (Exception e) {
2051 exceptionOccured(e, "Can't get Vector3d from text '"+txt+"'.");
2052 return null;
2053 }
2054 }
2055
2056
2057
2058
2059
2060
2061
2062 protected String stringValue( String txt ) {
2063 try {
2064 int index = txt.indexOf(" ");
2065 if (index == -1) {
2066 warning("Can't get string token from text '" + txt + "'.");
2067 return "";
2068 }
2069 String string = txt.substring(index+1, txt.length()-1);
2070 if (string != null) {
2071 return string;
2072 } else {
2073 warning("Can't get string token from text '"+txt+"'.");
2074 return "";
2075 }
2076 } catch (Exception e) {
2077 exceptionOccured(e, "Can't get string token from text '"+txt+"'.");
2078 return "";
2079 }
2080 }
2081
2082
2083
2084
2085
2086
2087
2088 protected UnrealId stringIdValue( String txt ) {
2089 return unrealIdValue(txt);
2090 }
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100 protected boolean booleanValue(String txt) {
2101 try {
2102 String token = getToken(txt, 1);
2103 if (token.equalsIgnoreCase("True")) return true;
2104 else return false;
2105 } catch (NullPointerException e) {
2106 warning("Can't get boolean token from text '"+txt+"'.");
2107 return false;
2108 } catch (Exception e) {
2109 exceptionOccured(e, "Can't get boolean token from text '"+txt+"'.");
2110 return false;
2111 }
2112 }
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122 protected UnrealId unrealIdValue(String txt) {
2123 try {
2124 String token = getToken(txt, 1);
2125 if (token == null) {
2126 warning("Can't get UnrealId token from text '"+txt+"'.");
2127 return null;
2128 }
2129 return translator.getId(token);
2130 } catch (NullPointerException e) {
2131 warning("Can't get UnrealId token from text '"+txt+"' (translator not set?).");
2132 return null;
2133 } catch (Exception e) {
2134 exceptionOccured(e, "Can't get UnrealId token from text '"+txt+"'.");
2135 return null;
2136 }
2137 }
2138
2139
2140 private int[] stack = new int[10];
2141 private int stack_pos = 0;
2142
2143
2144 protected Object actObj;
2145
2146
2147
2148
2149 private void state_go(int state)
2150 {
2151
2152
2153 stack[stack_pos++] = yystate();
2154 yybegin(state);
2155 }
2156
2157
2158
2159
2160 private void state_return()
2161 {
2162
2163 yybegin(stack[--stack_pos]);
2164 }
2165
2166
2167
2168
2169
2170
2171
2172
2173 public Yylex(java.io.Reader in) {
2174 this.zzReader = in;
2175 }
2176
2177
2178
2179
2180
2181
2182
2183 public Yylex(java.io.InputStream in) {
2184 this(new java.io.InputStreamReader(in));
2185 }
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195 private boolean zzRefill() throws java.io.IOException {
2196
2197
2198 if (zzStartRead > 0) {
2199 System.arraycopy(zzBuffer, zzStartRead,
2200 zzBuffer, 0,
2201 zzEndRead-zzStartRead);
2202
2203
2204 zzEndRead-= zzStartRead;
2205 zzCurrentPos-= zzStartRead;
2206 zzMarkedPos-= zzStartRead;
2207 zzStartRead = 0;
2208 }
2209
2210
2211 if (zzCurrentPos >= zzBuffer.length) {
2212
2213 char newBuffer[] = new char[zzCurrentPos*2];
2214 System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
2215 zzBuffer = newBuffer;
2216 }
2217
2218
2219 int numRead = zzReader.read(zzBuffer, zzEndRead,
2220 zzBuffer.length-zzEndRead);
2221
2222 if (numRead > 0) {
2223 zzEndRead+= numRead;
2224 return false;
2225 }
2226
2227 if (numRead == 0) {
2228 int c = zzReader.read();
2229 if (c == -1) {
2230 return true;
2231 } else {
2232 zzBuffer[zzEndRead++] = (char) c;
2233 return false;
2234 }
2235 }
2236
2237
2238 return true;
2239 }
2240
2241
2242
2243
2244
2245 public final void yyclose() throws java.io.IOException {
2246 zzAtEOF = true;
2247 zzEndRead = zzStartRead;
2248
2249 if (zzReader != null)
2250 zzReader.close();
2251 }
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264 public final void yyreset(java.io.Reader reader) {
2265 zzReader = reader;
2266 zzAtBOL = true;
2267 zzAtEOF = false;
2268 zzEOFDone = false;
2269 zzEndRead = zzStartRead = 0;
2270 zzCurrentPos = zzMarkedPos = 0;
2271 yyline = yychar = yycolumn = 0;
2272 zzLexicalState = YYINITIAL;
2273 }
2274
2275
2276
2277
2278
2279 public final int yystate() {
2280 return zzLexicalState;
2281 }
2282
2283
2284
2285
2286
2287
2288
2289 public final void yybegin(int newState) {
2290 zzLexicalState = newState;
2291 }
2292
2293
2294
2295
2296
2297 public final String yytext() {
2298 return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
2299 }
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313 public final char yycharat(int pos) {
2314 return zzBuffer[zzStartRead+pos];
2315 }
2316
2317
2318
2319
2320
2321 public final int yylength() {
2322 return zzMarkedPos-zzStartRead;
2323 }
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340 private void zzScanError(int errorCode) {
2341 String message;
2342 try {
2343 message = ZZ_ERROR_MSG[errorCode];
2344 }
2345 catch (ArrayIndexOutOfBoundsException e) {
2346 message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
2347 }
2348
2349 throw new Error(message);
2350 }
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361 public void yypushback(int number) {
2362 if ( number > yylength() )
2363 zzScanError(ZZ_PUSHBACK_2BIG);
2364
2365 zzMarkedPos -= number;
2366 }
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376 public InfoMessage yylex() throws java.io.IOException {
2377 int zzInput;
2378 int zzAction;
2379
2380
2381 int zzCurrentPosL;
2382 int zzMarkedPosL;
2383 int zzEndReadL = zzEndRead;
2384 char [] zzBufferL = zzBuffer;
2385 char [] zzCMapL = ZZ_CMAP;
2386
2387 int [] zzTransL = ZZ_TRANS;
2388 int [] zzRowMapL = ZZ_ROWMAP;
2389 int [] zzAttrL = ZZ_ATTRIBUTE;
2390
2391 while (true) {
2392 zzMarkedPosL = zzMarkedPos;
2393
2394 yychar+= zzMarkedPosL-zzStartRead;
2395
2396 boolean zzR = false;
2397 for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
2398 zzCurrentPosL++) {
2399 switch (zzBufferL[zzCurrentPosL]) {
2400 case '\u000B':
2401 case '\u000C':
2402 case '\u0085':
2403 case '\u2028':
2404 case '\u2029':
2405 yyline++;
2406 zzR = false;
2407 break;
2408 case '\r':
2409 yyline++;
2410 zzR = true;
2411 break;
2412 case '\n':
2413 if (zzR)
2414 zzR = false;
2415 else {
2416 yyline++;
2417 }
2418 break;
2419 default:
2420 zzR = false;
2421 }
2422 }
2423
2424 if (zzR) {
2425
2426 boolean zzPeek;
2427 if (zzMarkedPosL < zzEndReadL)
2428 zzPeek = zzBufferL[zzMarkedPosL] == '\n';
2429 else if (zzAtEOF)
2430 zzPeek = false;
2431 else {
2432 boolean eof = zzRefill();
2433 zzEndReadL = zzEndRead;
2434 zzMarkedPosL = zzMarkedPos;
2435 zzBufferL = zzBuffer;
2436 if (eof)
2437 zzPeek = false;
2438 else
2439 zzPeek = zzBufferL[zzMarkedPosL] == '\n';
2440 }
2441 if (zzPeek) yyline--;
2442 }
2443 zzAction = -1;
2444
2445 zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
2446
2447 zzState = ZZ_LEXSTATE[zzLexicalState];
2448
2449
2450 zzForAction: {
2451 while (true) {
2452
2453 if (zzCurrentPosL < zzEndReadL)
2454 zzInput = zzBufferL[zzCurrentPosL++];
2455 else if (zzAtEOF) {
2456 zzInput = YYEOF;
2457 break zzForAction;
2458 }
2459 else {
2460
2461 zzCurrentPos = zzCurrentPosL;
2462 zzMarkedPos = zzMarkedPosL;
2463 boolean eof = zzRefill();
2464
2465 zzCurrentPosL = zzCurrentPos;
2466 zzMarkedPosL = zzMarkedPos;
2467 zzBufferL = zzBuffer;
2468 zzEndReadL = zzEndRead;
2469 if (eof) {
2470 zzInput = YYEOF;
2471 break zzForAction;
2472 }
2473 else {
2474 zzInput = zzBufferL[zzCurrentPosL++];
2475 }
2476 }
2477 int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
2478 if (zzNext == -1) break zzForAction;
2479 zzState = zzNext;
2480
2481 int zzAttributes = zzAttrL[zzState];
2482 if ( (zzAttributes & 1) == 1 ) {
2483 zzAction = zzState;
2484 zzMarkedPosL = zzCurrentPosL;
2485 if ( (zzAttributes & 8) == 8 ) break zzForAction;
2486 }
2487
2488 }
2489 }
2490
2491
2492 zzMarkedPos = zzMarkedPosL;
2493
2494 switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
2495 case 75:
2496 { ((ConfigurationMessage)actObj).JointTypes.add(stringValue(yytext()));
2497 }
2498 case 120: break;
2499 case 73:
2500 { ((ConfigurationMessage)actObj).MaxRanges.add(doubleValue(yytext()));
2501 }
2502 case 121: break;
2503 case 8:
2504 { if (!yytext().equals(" ")) {
2505 warning("State MSG_GEO unprocessed: " + yytext());
2506 }
2507 }
2508 case 122: break;
2509 case 10:
2510 { if (!yytext().equals(" ")) {
2511 warning("State MSG_RES unprocessed: " + yytext());
2512 }
2513 }
2514 case 123: break;
2515 case 16:
2516 { actObj = new GeometryMessage();
2517 state_go(MSG_GEO);
2518 }
2519 case 124: break;
2520 case 54:
2521 { ((ConfigurationMessage)actObj).Opcodes.add(stringValue(yytext()));
2522 }
2523 case 125: break;
2524 case 70:
2525 { ((SensorMessage)actObj).Loudness= doubleValue(yytext());
2526 }
2527 case 126: break;
2528 case 78:
2529 { ((StateMessage)actObj).RearSteer = doubleValue(yytext());
2530 }
2531 case 127: break;
2532 case 45:
2533 { addRanges(yytext());
2534 }
2535 case 128: break;
2536 case 65:
2537 { ((SensorMessage)actObj).Density = doubleValue(yytext());
2538 }
2539 case 129: break;
2540 case 49:
2541 { ((ConfigurationMessage)actObj).Mass = doubleValue(yytext());
2542 }
2543 case 130: break;
2544 case 25:
2545 { ((SensorMessage)actObj).Velocity = new Point4d();
2546 }
2547 case 131: break;
2548 case 48:
2549 { ((GeometryMessage)actObj).Links.add(intValue(yytext()));
2550 }
2551 case 132: break;
2552 case 92:
2553 { ((GeometryMessage)actObj).ParentLinks.add(intValue(yytext()));
2554 }
2555 case 133: break;
2556 case 35:
2557 { ((ConfigurationMessage)actObj).Type = stringValue(yytext());
2558 }
2559 case 134: break;
2560 case 102:
2561 { ((ConfigurationMessage)actObj).MaxRearSteer = doubleValue(yytext());
2562 }
2563 case 135: break;
2564 case 96:
2565 { addRangeRange(yytext());
2566 }
2567 case 136: break;
2568 case 95:
2569 { ((StateMessage)actObj).RudderAngle = doubleValue(yytext());
2570 }
2571 case 137: break;
2572 case 37:
2573 { ((ResponseMessage)actObj).Type = stringValue(yytext());
2574 }
2575 case 138: break;
2576 case 113:
2577 { ((GeometryMessage)actObj).Orientations.add(rotationValue(yytext()));
2578 }
2579 case 139: break;
2580 case 85:
2581 { ((KillMessage)actObj).WeaponName = stringValue(yytext());
2582 }
2583 case 140: break;
2584 case 51:
2585 { ((ResponseMessage)actObj).Time = doubleValue(yytext());
2586 }
2587 case 141: break;
2588 case 18:
2589 { actObj = new KillMessage();
2590 state_go(MSG_DIE);
2591 }
2592 case 142: break;
2593 case 63:
2594 { ((NfoMessage)actObj).GameType = stringValue(yytext());
2595 }
2596 case 143: break;
2597 case 34:
2598 { ((GeometryMessage)actObj).Name = stringValue(yytext());
2599 }
2600 case 144: break;
2601 case 83:
2602 { ((ConfigurationMessage)actObj).MaxTorques.add(doubleValue(yytext()));
2603 }
2604 case 145: break;
2605 case 115:
2606 { ((KillMessage)actObj).DirectDamage = booleanValue(yytext());
2607 }
2608 case 146: break;
2609 case 60:
2610 { ((ConfigurationMessage)actObj).MaxVals.add(doubleValue(yytext()));
2611 }
2612 case 147: break;
2613 case 61:
2614 { ((ConfigurationMessage)actObj).MinVals.add(doubleValue(yytext()));
2615 }
2616 case 148: break;
2617 case 97:
2618 { ((GeometryMessage)actObj).WheelRadius = doubleValue(yytext());
2619 }
2620 case 149: break;
2621 case 55:
2622 {
2623 ((ResponseMessage)actObj).Statuses.add(stringValue(yytext()));
2624 }
2625 case 150: break;
2626 case 99:
2627 { ((SensorMessage)actObj).Latitude = latitudeValue(yytext());
2628 }
2629 case 151: break;
2630 case 89:
2631 { ((SensorMessage)actObj).Satellites = intValue(yytext());
2632 }
2633 case 152: break;
2634 case 15:
2635 { actObj = new SensorMessage();
2636 state_go(MSG_SEN);
2637 }
2638 case 153: break;
2639 case 106:
2640 { ((KillMessage)actObj).VehicleHit = booleanValue(yytext());
2641 }
2642 case 154: break;
2643 case 59:
2644 { ((SensorMessage)actObj).Radius = doubleValue(yytext());
2645 }
2646 case 155: break;
2647 case 117:
2648 { ((KillMessage)actObj).CausedByWorld = booleanValue(yytext());
2649 }
2650 case 156: break;
2651 case 46:
2652 { ((SensorMessage)actObj).Dist = doubleValue(yytext());
2653 }
2654 case 157: break;
2655 case 23:
2656 { ((SensorMessage)actObj).IDs.add(intValue(yytext()));
2657 }
2658 case 158: break;
2659 case 74:
2660 { ((ConfigurationMessage)actObj).MinRanges.add(doubleValue(yytext()));
2661 }
2662 case 159: break;
2663 case 32:
2664 { ((SensorMessage)actObj).Name = stringValue(yytext());
2665 }
2666 case 160: break;
2667 case 14:
2668 { actObj = new StateMessage();
2669 state_go(MSG_STA);
2670 }
2671 case 161: break;
2672 case 111:
2673 { ((StateMessage)actObj).SternPlaneAngle = doubleValue(yytext());
2674 }
2675 case 162: break;
2676 case 66:
2677 { ((SensorMessage)actObj).PartNames.add(stringValue(yytext()));
2678 }
2679 case 163: break;
2680 case 57:
2681 { ((MissionPackageMessage)actObj).Links.addTorque(doubleValue(yytext()));
2682 }
2683 case 164: break;
2684 case 105:
2685 { ((ConfigurationMessage)actObj).MaxFrontSteer = doubleValue(yytext());
2686 }
2687 case 165: break;
2688 case 33:
2689 { ((GeometryMessage)actObj).Type = stringValue(yytext());
2690 }
2691 case 166: break;
2692 case 71:
2693 { ((SensorMessage)actObj).OdoPose = odometryValue(yytext());
2694 }
2695 case 167: break;
2696 case 119:
2697 { addGeometry(yytext());
2698 }
2699 case 168: break;
2700 case 12:
2701 {
2702 stack_pos = 0;
2703
2704 yybegin(YYINITIAL);
2705 if (actObj != null)
2706 {
2707 InfoMessage obj = (InfoMessage) actObj;
2708
2709
2710
2711
2712 if (obj instanceof IWorldObject) {
2713 setTime((IWorldObject)obj, udkTime);
2714 }
2715
2716 actObj = null;
2717 return obj;
2718 }
2719 }
2720 case 169: break;
2721 case 21:
2722 { actObj = new ConfigurationMessage();
2723 state_go(MSG_CONF);
2724 }
2725 case 170: break;
2726 case 1:
2727 {
2728
2729
2730 warning("Illegal character: <" + yytext() + "> + currentstate "+ yystate());
2731 }
2732 case 171: break;
2733 case 103:
2734 { ((KillMessage)actObj).BulletHit = booleanValue(yytext());
2735 }
2736 case 172: break;
2737 case 43:
2738 { ((StateMessage)actObj).View = intValue(yytext());
2739 }
2740 case 173: break;
2741 case 93:
2742 { ((KillMessage)actObj).Flaming = booleanValue(yytext());
2743 }
2744 case 174: break;
2745 case 13:
2746 { actObj = new NfoMessage();
2747 state_go(MSG_NFO);
2748 }
2749 case 175: break;
2750 case 28:
2751 { ((StateMessage)actObj).Type = stringValue(yytext());
2752 }
2753 case 176: break;
2754 case 94:
2755 { ((KillMessage)actObj).DeathString = stringValue(yytext());
2756 }
2757 case 177: break;
2758 case 42:
2759 { ((StateMessage)actObj).Time = doubleValue(yytext());
2760 }
2761 case 178: break;
2762 case 44:
2763 { ((SensorMessage)actObj).Time = doubleValue(yytext());
2764 }
2765 case 179: break;
2766 case 7:
2767 { if (!yytext().equals(" ")) {
2768 warning("State MSG_SEN unprocessed: " + yytext());
2769 }
2770 }
2771 case 180: break;
2772 case 90:
2773 { ((SensorMessage)actObj).Resolution = doubleValue(yytext());
2774 }
2775 case 181: break;
2776 case 30:
2777 { ((SensorMessage)actObj).FOV = doubleValue(yytext());
2778 }
2779 case 182: break;
2780 case 22:
2781 { actObj = new MissionPackageMessage();
2782 state_go(MSG_MISSTA);
2783 }
2784 case 183: break;
2785 case 84:
2786 { ((KillMessage)actObj).DamageType = stringValue(yytext());
2787 }
2788 case 184: break;
2789 case 87:
2790 { ((StateMessage)actObj).FrontSteer = doubleValue(yytext());
2791 }
2792 case 185: break;
2793 case 114:
2794 { ((GeometryMessage)actObj).WheelSeparation = doubleValue(yytext());
2795 }
2796 case 186: break;
2797 case 26:
2798 { ((ResponseMessage)actObj).FOVs.add(stringValue(yytext()));
2799 }
2800 case 187: break;
2801 case 62:
2802 { ((KillMessage)actObj).Killer = unrealIdValue(yytext());
2803 }
2804 case 188: break;
2805 case 39:
2806 { ((NfoMessage)actObj).Level = stringValue(yytext());
2807 }
2808 case 189: break;
2809 case 29:
2810 { ((SensorMessage)actObj).Type = stringValue(yytext());
2811 }
2812 case 190: break;
2813 case 20:
2814 { addConfPair(yytext());
2815 }
2816 case 191: break;
2817 case 91:
2818 { ((SensorMessage)actObj).Visible = booleanValue(yytext());
2819 }
2820 case 192: break;
2821 case 80:
2822 { ((SensorMessage)actObj).Pos3D = locationDoubleValue(yytext());
2823 }
2824 case 193: break;
2825 case 4:
2826 { if (!yytext().equals(" ")) {
2827 warning("State MSG_BEG unprocessed: " + yytext());
2828 }
2829 }
2830 case 194: break;
2831 case 108:
2832 { ((StateMessage)actObj).LightIntensity = intValue(yytext());
2833 }
2834 case 195: break;
2835 case 52:
2836 { ((MissionPackageMessage)actObj).Links.addValue(doubleValue(yytext()));
2837 }
2838 case 196: break;
2839 case 31:
2840 { ((SensorMessage)actObj).Fix = intValue(yytext());
2841 }
2842 case 197: break;
2843 case 116:
2844 { ((SensorMessage)actObj).Acceleration = velocityValue(yytext());
2845 }
2846 case 198: break;
2847 case 107:
2848 { ((StateMessage)actObj).LightToggle = booleanValue(yytext());
2849 }
2850 case 199: break;
2851 case 101:
2852 { ((GeometryMessage)actObj).Locations.add(locationDoubleValue(yytext()));
2853 }
2854 case 200: break;
2855 case 88:
2856 { addTick(yytext());
2857 }
2858 case 201: break;
2859 case 41:
2860 { ((MissionPackageMessage)actObj).Links.addLink(intValue(yytext()));
2861 }
2862 case 202: break;
2863 case 24:
2864 { ((SensorMessage)actObj).Gas = stringValue(yytext());
2865 }
2866 case 203: break;
2867 case 109:
2868 { addTouch(yytext());
2869 }
2870 case 204: break;
2871 case 3:
2872 { warning("Dummy state, should not reach here: " + yytext());
2873 }
2874 case 205: break;
2875 case 67:
2876 { ((SensorMessage)actObj).Pos2D = point2dDoubleValue(yytext());
2877 }
2878 case 206: break;
2879 case 110:
2880 { ((GeometryMessage)actObj).Dimensions = vector3fValue(yytext());
2881 }
2882 case 207: break;
2883 case 112:
2884 { ((SensorMessage)actObj).Orientations.add(rotationValue(yytext()));
2885 }
2886 case 208: break;
2887 case 76:
2888 { ((ResponseMessage)actObj).Viewports.add(stringValue(yytext()));
2889 }
2890 case 209: break;
2891 case 69:
2892 { ((SensorMessage)actObj).Duration= doubleValue(yytext());
2893 }
2894 case 210: break;
2895 case 100:
2896 { ((SensorMessage)actObj).Locations.add(locationDoubleValue(yytext()));
2897 }
2898 case 211: break;
2899 case 72:
2900 { ((ConfigurationMessage)actObj).MaxSpeeds.add(doubleValue(yytext()));
2901 }
2902 case 212: break;
2903 case 86:
2904 { ((NfoMessage)actObj).StartPoseCount = intValue(yytext());
2905 }
2906 case 213: break;
2907 case 27:
2908 { ((MissionPackageMessage)actObj).Name = stringValue(yytext());
2909 }
2910 case 214: break;
2911 case 19:
2912 { addStaPair(yytext());
2913 }
2914 case 215: break;
2915 case 17:
2916 { actObj = new ResponseMessage();
2917 state_go(MSG_RES);
2918 }
2919 case 216: break;
2920 case 81:
2921 { ((SensorMessage)actObj).Velocity = point4fValue(yytext());
2922 }
2923 case 217: break;
2924 case 64:
2925 { ((StateMessage)actObj).Battery = intValue(yytext());
2926 }
2927 case 218: break;
2928 case 53:
2929 { ((SensorMessage)actObj).Status = stringValue(yytext());
2930 }
2931 case 219: break;
2932 case 50:
2933 { ((ConfigurationMessage)actObj).Links.add(intValue(yytext()));
2934 }
2935 case 220: break;
2936 case 68:
2937 { ((GeometryMessage)actObj).CenterOfGravity = point3fValue(yytext());
2938 }
2939 case 221: break;
2940 case 77:
2941 { ((NfoMessage)actObj).TimeLimit = doubleValue(yytext());
2942 }
2943 case 222: break;
2944 case 38:
2945 { ((ResponseMessage)actObj).Names.add(stringValue(yytext()));
2946 }
2947 case 223: break;
2948 case 118:
2949 { addStartPose(yytext());
2950 }
2951 case 224: break;
2952 case 79:
2953 { ((SensorMessage)actObj).Position = point4fValue(yytext());
2954 }
2955 case 225: break;
2956 case 9:
2957 { if (!yytext().equals(" ")) {
2958 warning("State MSG_CONF unprocessed: " + yytext());
2959 }
2960 }
2961 case 226: break;
2962 case 11:
2963 { if (!yytext().equals(" ")) {
2964 warning("State MSG_DIE unprocessed: " + yytext());
2965 }
2966 }
2967 case 227: break;
2968 case 82:
2969 { ((GeometryMessage)actObj).WheelBase = doubleValue(yytext());
2970 }
2971 case 228: break;
2972 case 47:
2973 { ((SensorMessage)actObj).Prob= doubleValue(yytext());
2974 }
2975 case 229: break;
2976 case 5:
2977 { if (!yytext().equals(" ")) {
2978 warning("State MSG_MISSTA unprocessed: " + yytext());
2979 }
2980 }
2981 case 230: break;
2982 case 40:
2983 { ((MissionPackageMessage)actObj).Time = doubleValue(yytext());
2984 }
2985 case 231: break;
2986 case 6:
2987 { if (!yytext().equals(" ")) {
2988 warning("State MSG_STA unprocessed: " + yytext());
2989 }
2990 }
2991 case 232: break;
2992 case 104:
2993 { ((SensorMessage)actObj).Longitude = longitudeValue(yytext());
2994 }
2995 case 233: break;
2996 case 98:
2997 { ((ConfigurationMessage)actObj).SteeringType = stringValue(yytext());
2998 }
2999 case 234: break;
3000 case 56:
3001 { ((ResponseMessage)actObj).Config = stringValue(yytext());
3002 }
3003 case 235: break;
3004 case 58:
3005 { ((SensorMessage)actObj).Corona = doubleValue(yytext());
3006 }
3007 case 236: break;
3008 case 36:
3009 { ((ConfigurationMessage)actObj).Name = stringValue(yytext());
3010 }
3011 case 237: break;
3012 case 2:
3013 {
3014 }
3015 case 238: break;
3016 default:
3017 if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
3018 zzAtEOF = true;
3019 { throw new ParserEOFException(this);
3020 }
3021 }
3022 else {
3023 zzScanError(ZZ_NO_MATCH);
3024 }
3025 }
3026 }
3027 }
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038 public static void main(String argv[]) {
3039 if (argv.length == 0) {
3040 System.out.println("Usage : java Yylex <inputfile>");
3041 }
3042 else {
3043 for (int i = 0; i < argv.length; i++) {
3044 Yylex scanner = null;
3045 try {
3046 scanner = new Yylex( new java.io.FileReader(argv[i]) );
3047 while ( !scanner.zzAtEOF ) scanner.yylex();
3048 }
3049 catch (java.io.FileNotFoundException e) {
3050 System.out.println("File not found : \""+argv[i]+"\"");
3051 }
3052 catch (java.io.IOException e) {
3053 System.out.println("IO error scanning file \""+argv[i]+"\"");
3054 System.out.println(e);
3055 }
3056 catch (Exception e) {
3057 System.out.println("Unexpected exception:");
3058 e.printStackTrace();
3059 }
3060 }
3061 }
3062 }
3063
3064
3065 }