View Javadoc

1   package org.objectledge.encodings.encoders;
2   
3   import java.util.HashMap;
4   
5   import org.objectledge.encodings.MappingEntry;
6   
7   /***
8    * HTMLEntity encoder.
9    *
10   * @author <a href="mailto:dgajda@caltha.pl">Damian Gajda</a>
11   * @version $Id: CharEncoderHTMLEntity.java,v 1.5 2006/02/08 18:21:47 zwierzem Exp $
12   */
13  public class CharEncoderHTMLEntity
14           extends CharEncoder
15  {
16      //---------------------------------------------------------------------
17      // static fields
18  
19      private static final HashMap<String, MappingEntry> ENTITIES_BY_NAME =
20          new HashMap<String, MappingEntry>();
21  
22      private static final MappingEntry[] ENTITIES =
23              {
24              	// XML entities
25              new MappingEntry(34, "quot"),
26              new MappingEntry(38, "amp"),
27  			new MappingEntry(39, "apos"), // NOT in HTML 4.0 specification
28              new MappingEntry(60, "lt"),
29              new MappingEntry(62, "gt"),
30              	// SGML/HTML entities
31              new MappingEntry(160, "nbsp"),
32              new MappingEntry(161, "iexcl"),
33              new MappingEntry(162, "cent"),
34              new MappingEntry(163, "pound"),
35              new MappingEntry(164, "curren"),
36              new MappingEntry(165, "yen"),
37              new MappingEntry(166, "brvbar"),
38              new MappingEntry(167, "sect"),
39              new MappingEntry(168, "uml"),
40              new MappingEntry(169, "copy"),
41              new MappingEntry(170, "ordf"),
42              new MappingEntry(171, "laquo"),
43              new MappingEntry(172, "not"),
44              new MappingEntry(173, "shy"),
45              new MappingEntry(174, "reg"),
46              new MappingEntry(175, "macr"),
47              new MappingEntry(176, "deg"),
48              new MappingEntry(177, "plusmn"),
49              new MappingEntry(178, "sup2"),
50              new MappingEntry(179, "sup3"),
51              new MappingEntry(180, "acute"),
52              new MappingEntry(181, "micro"),
53              new MappingEntry(182, "para"),
54              new MappingEntry(183, "middot"),
55              new MappingEntry(184, "cedil"),
56              new MappingEntry(185, "sup1"),
57              new MappingEntry(186, "ordm"),
58              new MappingEntry(187, "raquo"),
59              new MappingEntry(188, "frac14"),
60              new MappingEntry(189, "frac12"),
61              new MappingEntry(190, "frac34"),
62              new MappingEntry(191, "iquest"),
63              new MappingEntry(192, "Agrave"),
64              new MappingEntry(193, "Aacute"),
65              new MappingEntry(194, "Acirc"),
66              new MappingEntry(195, "Atilde"),
67              new MappingEntry(196, "Auml"),
68              new MappingEntry(197, "Aring"),
69              new MappingEntry(198, "AElig"),
70              new MappingEntry(199, "Ccedil"),
71              new MappingEntry(200, "Egrave"),
72              new MappingEntry(201, "Eacute"),
73              new MappingEntry(202, "Ecirc"),
74              new MappingEntry(203, "Euml"),
75              new MappingEntry(204, "Igrave"),
76              new MappingEntry(205, "Iacute"),
77              new MappingEntry(206, "Icirc"),
78              new MappingEntry(207, "Iuml"),
79              new MappingEntry(208, "ETH"),
80              new MappingEntry(209, "Ntilde"),
81              new MappingEntry(210, "Ograve"),
82              new MappingEntry(211, "Oacute"),
83              new MappingEntry(212, "Ocirc"),
84              new MappingEntry(213, "Otilde"),
85              new MappingEntry(214, "Ouml"),
86              new MappingEntry(215, "times"),
87              new MappingEntry(216, "Oslash"),
88              new MappingEntry(217, "Ugrave"),
89              new MappingEntry(218, "Uacute"),
90              new MappingEntry(219, "Ucirc"),
91              new MappingEntry(220, "Uuml"),
92              new MappingEntry(221, "Yacute"),
93              new MappingEntry(222, "THORN"),
94              new MappingEntry(223, "szlig"),
95              new MappingEntry(224, "agrave"),
96              new MappingEntry(225, "aacute"),
97              new MappingEntry(226, "acirc"),
98              new MappingEntry(227, "atilde"),
99              new MappingEntry(228, "auml"),
100             new MappingEntry(229, "aring"),
101             new MappingEntry(230, "aelig"),
102             new MappingEntry(231, "ccedil"),
103             new MappingEntry(232, "egrave"),
104             new MappingEntry(233, "eacute"),
105             new MappingEntry(234, "ecirc"),
106             new MappingEntry(235, "euml"),
107             new MappingEntry(236, "igrave"),
108             new MappingEntry(237, "iacute"),
109             new MappingEntry(238, "icirc"),
110             new MappingEntry(239, "iuml"),
111             new MappingEntry(240, "eth"),
112             new MappingEntry(241, "ntilde"),
113             new MappingEntry(242, "ograve"),
114             new MappingEntry(243, "oacute"),
115             new MappingEntry(244, "ocirc"),
116             new MappingEntry(245, "otilde"),
117             new MappingEntry(246, "ouml"),
118             new MappingEntry(247, "divide"),
119             new MappingEntry(248, "oslash"),
120             new MappingEntry(249, "ugrave"),
121             new MappingEntry(250, "uacute"),
122             new MappingEntry(251, "ucirc"),
123             new MappingEntry(252, "uuml"),
124             new MappingEntry(253, "yacute"),
125             new MappingEntry(254, "thorn"),
126             new MappingEntry(255, "yuml"),
127             new MappingEntry(338, "OElig"),
128             new MappingEntry(339, "oelig"),
129             new MappingEntry(352, "Scaron"),
130             new MappingEntry(353, "scaron"),
131             new MappingEntry(376, "Yuml"),
132             new MappingEntry(402, "fnof"),
133             new MappingEntry(710, "circ"),
134             new MappingEntry(732, "tilde"),
135             new MappingEntry(913, "Alpha"),
136             new MappingEntry(914, "Beta"),
137             new MappingEntry(915, "Gamma"),
138             new MappingEntry(916, "Delta"),
139             new MappingEntry(917, "Epsilon"),
140             new MappingEntry(918, "Zeta"),
141             new MappingEntry(919, "Eta"),
142             new MappingEntry(920, "Theta"),
143             new MappingEntry(921, "Iota"),
144             new MappingEntry(922, "Kappa"),
145             new MappingEntry(923, "Lambda"),
146             new MappingEntry(924, "Mu"),
147             new MappingEntry(925, "Nu"),
148             new MappingEntry(926, "Xi"),
149             new MappingEntry(927, "Omicron"),
150             new MappingEntry(928, "Pi"),
151             new MappingEntry(929, "Rho"),
152             new MappingEntry(931, "Sigma"),
153             new MappingEntry(932, "Tau"),
154             new MappingEntry(933, "Upsilon"),
155             new MappingEntry(934, "Phi"),
156             new MappingEntry(935, "Chi"),
157             new MappingEntry(936, "Psi"),
158             new MappingEntry(937, "Omega"),
159             new MappingEntry(945, "alpha"),
160             new MappingEntry(946, "beta"),
161             new MappingEntry(947, "gamma"),
162             new MappingEntry(948, "delta"),
163             new MappingEntry(949, "epsilon"),
164             new MappingEntry(950, "zeta"),
165             new MappingEntry(951, "eta"),
166             new MappingEntry(952, "theta"),
167             new MappingEntry(953, "iota"),
168             new MappingEntry(954, "kappa"),
169             new MappingEntry(955, "lambda"),
170             new MappingEntry(956, "mu"),
171             new MappingEntry(957, "nu"),
172             new MappingEntry(958, "xi"),
173             new MappingEntry(959, "omicron"),
174             new MappingEntry(960, "pi"),
175             new MappingEntry(961, "rho"),
176             new MappingEntry(962, "sigmaf"),
177             new MappingEntry(963, "sigma"),
178             new MappingEntry(964, "tau"),
179             new MappingEntry(965, "upsilon"),
180             new MappingEntry(966, "phi"),
181             new MappingEntry(967, "chi"),
182             new MappingEntry(968, "psi"),
183             new MappingEntry(969, "omega"),
184             new MappingEntry(977, "thetasym"),
185             new MappingEntry(978, "upsih"),
186             new MappingEntry(982, "piv"),
187             new MappingEntry(8194, "ensp"),
188             new MappingEntry(8195, "emsp"),
189             new MappingEntry(8201, "thinsp"),
190             new MappingEntry(8204, "zwnj"),
191             new MappingEntry(8205, "zwj"),
192             new MappingEntry(8206, "lrm"),
193             new MappingEntry(8207, "rlm"),
194             new MappingEntry(8211, "ndash"),
195             new MappingEntry(8212, "mdash"),
196             new MappingEntry(8216, "lsquo"),
197             new MappingEntry(8217, "rsquo"),
198             new MappingEntry(8218, "sbquo"),
199             new MappingEntry(8220, "ldquo"),
200             new MappingEntry(8221, "rdquo"),
201             new MappingEntry(8222, "bdquo"),
202             new MappingEntry(8224, "dagger"),
203             new MappingEntry(8225, "Dagger"),
204             new MappingEntry(8226, "bull"),
205             new MappingEntry(8230, "hellip"),
206             new MappingEntry(8240, "permil"),
207             new MappingEntry(8242, "prime"),
208             new MappingEntry(8243, "Prime"),
209             new MappingEntry(8249, "lsaquo"),
210             new MappingEntry(8250, "rsaquo"),
211             new MappingEntry(8254, "oline"),
212             new MappingEntry(8260, "frasl"),
213             new MappingEntry(8364, "euro"),
214             new MappingEntry(8465, "image"),
215             new MappingEntry(8472, "weierp"),
216             new MappingEntry(8476, "real"),
217             new MappingEntry(8482, "trade"),
218             new MappingEntry(8501, "alefsym"),
219             new MappingEntry(8592, "larr"),
220             new MappingEntry(8593, "uarr"),
221             new MappingEntry(8594, "rarr"),
222             new MappingEntry(8595, "darr"),
223             new MappingEntry(8596, "harr"),
224             new MappingEntry(8629, "crarr"),
225             new MappingEntry(8656, "lArr"),
226             new MappingEntry(8657, "uArr"),
227             new MappingEntry(8658, "rArr"),
228             new MappingEntry(8659, "dArr"),
229             new MappingEntry(8660, "hArr"),
230             new MappingEntry(8704, "forall"),
231             new MappingEntry(8706, "part"),
232             new MappingEntry(8707, "exist"),
233             new MappingEntry(8709, "empty"),
234             new MappingEntry(8711, "nabla"),
235             new MappingEntry(8712, "isin"),
236             new MappingEntry(8713, "notin"),
237             new MappingEntry(8715, "ni"),
238             new MappingEntry(8719, "prod"),
239             new MappingEntry(8721, "sum"),
240             new MappingEntry(8722, "minus"),
241             new MappingEntry(8727, "lowast"),
242             new MappingEntry(8730, "radic"),
243             new MappingEntry(8733, "prop"),
244             new MappingEntry(8734, "infin"),
245             new MappingEntry(8736, "ang"),
246             new MappingEntry(8743, "and"),
247             new MappingEntry(8744, "or"),
248             new MappingEntry(8745, "cap"),
249             new MappingEntry(8746, "cup"),
250             new MappingEntry(8747, "int"),
251             new MappingEntry(8756, "there4"),
252             new MappingEntry(8764, "sim"),
253             new MappingEntry(8773, "cong"),
254             new MappingEntry(8776, "asymp"),
255             new MappingEntry(8800, "ne"),
256             new MappingEntry(8801, "equiv"),
257             new MappingEntry(8804, "le"),
258             new MappingEntry(8805, "ge"),
259             new MappingEntry(8834, "sub"),
260             new MappingEntry(8835, "sup"),
261             new MappingEntry(8836, "nsub"),
262             new MappingEntry(8838, "sube"),
263             new MappingEntry(8839, "supe"),
264             new MappingEntry(8853, "oplus"),
265             new MappingEntry(8855, "otimes"),
266             new MappingEntry(8869, "perp"),
267             new MappingEntry(8901, "sdot"),
268             new MappingEntry(8968, "lceil"),
269             new MappingEntry(8969, "rceil"),
270             new MappingEntry(8970, "lfloor"),
271             new MappingEntry(8971, "rfloor"),
272             new MappingEntry(9001, "lang"),
273             new MappingEntry(9002, "rang"),
274             new MappingEntry(9674, "loz"),
275             new MappingEntry(9824, "spades"),
276             new MappingEntry(9827, "clubs"),
277             new MappingEntry(9829, "hearts"),
278             new MappingEntry(9830, "diams")
279             };
280 
281 
282     /*** Array indexed by characters most significant byte.
283      *  It contains indexes for a second table containing values mapped. */
284     private static final int[] PREFIX_INDEX = {
285 0x0, 0x100, 0x200, 0x300, 0xa00, 0xa00, 0xa00, 0xa00,
286 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
287 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
288 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
289 0x400, 0x500, 0x600, 0x700, 0xa00, 0x800, 0x900, 0xa00,
290 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
291 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
292 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
293 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
294 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
295 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
296 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
297 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
298 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
299 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
300 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
301 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
302 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
303 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
304 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
305 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
306 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
307 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
308 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
309 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
310 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
311 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
312 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
313 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
314 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
315 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00,
316 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00, 0xa00
317     };
318 
319     /*** Array indexed both by prefixIndex array and characters least significant byte.
320      *  It contains values mapped onto characters. */
321     private static final char[][] SUFFIX_INDEX = {
322 null,null,null,null,null,null,null,null,
323 null,null,null,null,null,null,null,null,
324 null,null,null,null,null,null,null,null,
325 null,null,null,null,null,null,null,null,
326 null,null,{ 0x71, 0x75, 0x6f, 0x74 },null,null,null,{ 0x61, 0x6d, 0x70 },{ 0x61, 0x70, 0x6f, 0x73 },
327 null,null,null,null,null,null,null,null,
328 null,null,null,null,null,null,null,null,
329 null,null,null,null,{ 0x6c, 0x74 },null,{ 0x67, 0x74 },null,
330 null,null,null,null,null,null,null,null,
331 null,null,null,null,null,null,null,null,
332 null,null,null,null,null,null,null,null,
333 null,null,null,null,null,null,null,null,
334 null,null,null,null,null,null,null,null,
335 null,null,null,null,null,null,null,null,
336 null,null,null,null,null,null,null,null,
337 null,null,null,null,null,null,null,null,
338 null,null,null,null,null,null,null,null,
339 null,null,null,null,null,null,null,null,
340 null,null,null,null,null,null,null,null,
341 null,null,null,null,null,null,null,null,
342 { 0x6e, 0x62, 0x73, 0x70 },{ 0x69, 0x65, 0x78, 0x63, 0x6c },{ 0x63, 0x65, 0x6e, 0x74 },{ 0x70, 0x6f, 0x75, 0x6e, 0x64 },{ 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e },{ 0x79, 0x65, 0x6e },{ 0x62, 0x72, 0x76, 0x62, 0x61, 0x72 },{ 0x73, 0x65, 0x63, 0x74 },
343 { 0x75, 0x6d, 0x6c },{ 0x63, 0x6f, 0x70, 0x79 },{ 0x6f, 0x72, 0x64, 0x66 },{ 0x6c, 0x61, 0x71, 0x75, 0x6f },{ 0x6e, 0x6f, 0x74 },{ 0x73, 0x68, 0x79 },{ 0x72, 0x65, 0x67 },{ 0x6d, 0x61, 0x63, 0x72 },
344 { 0x64, 0x65, 0x67 },{ 0x70, 0x6c, 0x75, 0x73, 0x6d, 0x6e },{ 0x73, 0x75, 0x70, 0x32 },{ 0x73, 0x75, 0x70, 0x33 },{ 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x6d, 0x69, 0x63, 0x72, 0x6f },{ 0x70, 0x61, 0x72, 0x61 },{ 0x6d, 0x69, 0x64, 0x64, 0x6f, 0x74 },
345 { 0x63, 0x65, 0x64, 0x69, 0x6c },{ 0x73, 0x75, 0x70, 0x31 },{ 0x6f, 0x72, 0x64, 0x6d },{ 0x72, 0x61, 0x71, 0x75, 0x6f },{ 0x66, 0x72, 0x61, 0x63, 0x31, 0x34 },{ 0x66, 0x72, 0x61, 0x63, 0x31, 0x32 },{ 0x66, 0x72, 0x61, 0x63, 0x33, 0x34 },{ 0x69, 0x71, 0x75, 0x65, 0x73, 0x74 },
346 { 0x41, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x41, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x41, 0x63, 0x69, 0x72, 0x63 },{ 0x41, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x41, 0x75, 0x6d, 0x6c },{ 0x41, 0x72, 0x69, 0x6e, 0x67 },{ 0x41, 0x45, 0x6c, 0x69, 0x67 },{ 0x43, 0x63, 0x65, 0x64, 0x69, 0x6c },
347 { 0x45, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x45, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x45, 0x63, 0x69, 0x72, 0x63 },{ 0x45, 0x75, 0x6d, 0x6c },{ 0x49, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x49, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x49, 0x63, 0x69, 0x72, 0x63 },{ 0x49, 0x75, 0x6d, 0x6c },
348 { 0x45, 0x54, 0x48 },{ 0x4e, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x4f, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x4f, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x4f, 0x63, 0x69, 0x72, 0x63 },{ 0x4f, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x4f, 0x75, 0x6d, 0x6c },{ 0x74, 0x69, 0x6d, 0x65, 0x73 },
349 { 0x4f, 0x73, 0x6c, 0x61, 0x73, 0x68 },{ 0x55, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x55, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x55, 0x63, 0x69, 0x72, 0x63 },{ 0x55, 0x75, 0x6d, 0x6c },{ 0x59, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x54, 0x48, 0x4f, 0x52, 0x4e },{ 0x73, 0x7a, 0x6c, 0x69, 0x67 },
350 { 0x61, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x61, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x61, 0x63, 0x69, 0x72, 0x63 },{ 0x61, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x61, 0x75, 0x6d, 0x6c },{ 0x61, 0x72, 0x69, 0x6e, 0x67 },{ 0x61, 0x65, 0x6c, 0x69, 0x67 },{ 0x63, 0x63, 0x65, 0x64, 0x69, 0x6c },
351 { 0x65, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x65, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x65, 0x63, 0x69, 0x72, 0x63 },{ 0x65, 0x75, 0x6d, 0x6c },{ 0x69, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x69, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x69, 0x63, 0x69, 0x72, 0x63 },{ 0x69, 0x75, 0x6d, 0x6c },
352 { 0x65, 0x74, 0x68 },{ 0x6e, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x6f, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x6f, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x6f, 0x63, 0x69, 0x72, 0x63 },{ 0x6f, 0x74, 0x69, 0x6c, 0x64, 0x65 },{ 0x6f, 0x75, 0x6d, 0x6c },{ 0x64, 0x69, 0x76, 0x69, 0x64, 0x65 },
353 { 0x6f, 0x73, 0x6c, 0x61, 0x73, 0x68 },{ 0x75, 0x67, 0x72, 0x61, 0x76, 0x65 },{ 0x75, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x75, 0x63, 0x69, 0x72, 0x63 },{ 0x75, 0x75, 0x6d, 0x6c },{ 0x79, 0x61, 0x63, 0x75, 0x74, 0x65 },{ 0x74, 0x68, 0x6f, 0x72, 0x6e },{ 0x79, 0x75, 0x6d, 0x6c },
354 null,null,null,null,null,null,null,null,
355 null,null,null,null,null,null,null,null,
356 null,null,null,null,null,null,null,null,
357 null,null,null,null,null,null,null,null,
358 null,null,null,null,null,null,null,null,
359 null,null,null,null,null,null,null,null,
360 null,null,null,null,null,null,null,null,
361 null,null,null,null,null,null,null,null,
362 null,null,null,null,null,null,null,null,
363 null,null,null,null,null,null,null,null,
364 null,null,{ 0x4f, 0x45, 0x6c, 0x69, 0x67 },{ 0x6f, 0x65, 0x6c, 0x69, 0x67 },null,null,null,null,
365 null,null,null,null,null,null,null,null,
366 { 0x53, 0x63, 0x61, 0x72, 0x6f, 0x6e },{ 0x73, 0x63, 0x61, 0x72, 0x6f, 0x6e },null,null,null,null,null,null,
367 null,null,null,null,null,null,null,null,
368 null,null,null,null,null,null,null,null,
369 { 0x59, 0x75, 0x6d, 0x6c },null,null,null,null,null,null,null,
370 null,null,null,null,null,null,null,null,
371 null,null,null,null,null,null,null,null,
372 null,null,{ 0x66, 0x6e, 0x6f, 0x66 },null,null,null,null,null,
373 null,null,null,null,null,null,null,null,
374 null,null,null,null,null,null,null,null,
375 null,null,null,null,null,null,null,null,
376 null,null,null,null,null,null,null,null,
377 null,null,null,null,null,null,null,null,
378 null,null,null,null,null,null,null,null,
379 null,null,null,null,null,null,null,null,
380 null,null,null,null,null,null,null,null,
381 null,null,null,null,null,null,null,null,
382 null,null,null,null,null,null,null,null,
383 null,null,null,null,null,null,null,null,
384 null,null,null,null,null,null,null,null,
385 null,null,null,null,null,null,null,null,
386 null,null,null,null,null,null,null,null,
387 null,null,null,null,null,null,null,null,
388 null,null,null,null,null,null,null,null,
389 null,null,null,null,null,null,null,null,
390 null,null,null,null,null,null,null,null,
391 null,null,null,null,null,null,null,null,
392 null,null,null,null,null,null,null,null,
393 null,null,null,null,null,null,null,null,
394 null,null,null,null,null,null,null,null,
395 null,null,null,null,null,null,null,null,
396 null,null,null,null,null,null,null,null,
397 null,null,null,null,null,null,null,null,
398 null,null,null,null,null,null,null,null,
399 null,null,null,null,null,null,null,null,
400 null,null,null,null,null,null,null,null,
401 null,null,null,null,null,null,null,null,
402 null,null,null,null,null,null,null,null,
403 null,null,null,null,null,null,null,null,
404 null,null,null,null,null,null,null,null,
405 null,null,null,null,null,null,null,null,
406 null,null,null,null,null,null,null,null,
407 null,null,null,null,null,null,null,null,
408 null,null,null,null,null,null,null,null,
409 null,null,null,null,null,null,null,null,
410 null,null,null,null,null,null,{ 0x63, 0x69, 0x72, 0x63 },null,
411 null,null,null,null,null,null,null,null,
412 null,null,null,null,null,null,null,null,
413 null,null,null,null,{ 0x74, 0x69, 0x6c, 0x64, 0x65 },null,null,null,
414 null,null,null,null,null,null,null,null,
415 null,null,null,null,null,null,null,null,
416 null,null,null,null,null,null,null,null,
417 null,null,null,null,null,null,null,null,
418 null,null,null,null,null,null,null,null,
419 null,null,null,null,null,null,null,null,
420 null,null,null,null,null,null,null,null,
421 null,null,null,null,null,null,null,null,
422 null,null,null,null,null,null,null,null,
423 null,null,null,null,null,null,null,null,
424 null,null,null,null,null,null,null,null,
425 null,null,null,null,null,null,null,null,
426 null,null,null,null,null,null,null,null,
427 null,null,null,null,null,null,null,null,
428 null,null,null,null,null,null,null,null,
429 null,null,null,null,null,null,null,null,
430 null,null,null,null,null,null,null,null,
431 null,null,null,null,null,null,null,null,
432 null,null,null,null,null,null,null,null,
433 null,null,null,null,null,null,null,null,
434 null,null,null,null,null,null,null,null,
435 null,null,null,null,null,null,null,null,
436 null,{ 0x41, 0x6c, 0x70, 0x68, 0x61 },{ 0x42, 0x65, 0x74, 0x61 },{ 0x47, 0x61, 0x6d, 0x6d, 0x61 },{ 0x44, 0x65, 0x6c, 0x74, 0x61 },{ 0x45, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e },{ 0x5a, 0x65, 0x74, 0x61 },{ 0x45, 0x74, 0x61 },
437 { 0x54, 0x68, 0x65, 0x74, 0x61 },{ 0x49, 0x6f, 0x74, 0x61 },{ 0x4b, 0x61, 0x70, 0x70, 0x61 },{ 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61 },{ 0x4d, 0x75 },{ 0x4e, 0x75 },{ 0x58, 0x69 },{ 0x4f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e },
438 { 0x50, 0x69 },{ 0x52, 0x68, 0x6f },null,{ 0x53, 0x69, 0x67, 0x6d, 0x61 },{ 0x54, 0x61, 0x75 },{ 0x55, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e },{ 0x50, 0x68, 0x69 },{ 0x43, 0x68, 0x69 },
439 { 0x50, 0x73, 0x69 },{ 0x4f, 0x6d, 0x65, 0x67, 0x61 },null,null,null,null,null,null,
440 null,{ 0x61, 0x6c, 0x70, 0x68, 0x61 },{ 0x62, 0x65, 0x74, 0x61 },{ 0x67, 0x61, 0x6d, 0x6d, 0x61 },{ 0x64, 0x65, 0x6c, 0x74, 0x61 },{ 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e },{ 0x7a, 0x65, 0x74, 0x61 },{ 0x65, 0x74, 0x61 },
441 { 0x74, 0x68, 0x65, 0x74, 0x61 },{ 0x69, 0x6f, 0x74, 0x61 },{ 0x6b, 0x61, 0x70, 0x70, 0x61 },{ 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61 },{ 0x6d, 0x75 },{ 0x6e, 0x75 },{ 0x78, 0x69 },{ 0x6f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e },
442 { 0x70, 0x69 },{ 0x72, 0x68, 0x6f },{ 0x73, 0x69, 0x67, 0x6d, 0x61, 0x66 },{ 0x73, 0x69, 0x67, 0x6d, 0x61 },{ 0x74, 0x61, 0x75 },{ 0x75, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e },{ 0x70, 0x68, 0x69 },{ 0x63, 0x68, 0x69 },
443 { 0x70, 0x73, 0x69 },{ 0x6f, 0x6d, 0x65, 0x67, 0x61 },null,null,null,null,null,null,
444 null,{ 0x74, 0x68, 0x65, 0x74, 0x61, 0x73, 0x79, 0x6d },{ 0x75, 0x70, 0x73, 0x69, 0x68 },null,null,null,{ 0x70, 0x69, 0x76 },null,
445 null,null,null,null,null,null,null,null,
446 null,null,null,null,null,null,null,null,
447 null,null,null,null,null,null,null,null,
448 null,null,null,null,null,null,null,null,
449 null,null,null,null,null,null,null,null,
450 null,null,{ 0x65, 0x6e, 0x73, 0x70 },{ 0x65, 0x6d, 0x73, 0x70 },null,null,null,null,
451 null,{ 0x74, 0x68, 0x69, 0x6e, 0x73, 0x70 },null,null,{ 0x7a, 0x77, 0x6e, 0x6a },{ 0x7a, 0x77, 0x6a },{ 0x6c, 0x72, 0x6d },{ 0x72, 0x6c, 0x6d },
452 null,null,null,{ 0x6e, 0x64, 0x61, 0x73, 0x68 },{ 0x6d, 0x64, 0x61, 0x73, 0x68 },null,null,null,
453 { 0x6c, 0x73, 0x71, 0x75, 0x6f },{ 0x72, 0x73, 0x71, 0x75, 0x6f },{ 0x73, 0x62, 0x71, 0x75, 0x6f },null,{ 0x6c, 0x64, 0x71, 0x75, 0x6f },{ 0x72, 0x64, 0x71, 0x75, 0x6f },{ 0x62, 0x64, 0x71, 0x75, 0x6f },null,
454 { 0x64, 0x61, 0x67, 0x67, 0x65, 0x72 },{ 0x44, 0x61, 0x67, 0x67, 0x65, 0x72 },{ 0x62, 0x75, 0x6c, 0x6c },null,null,null,{ 0x68, 0x65, 0x6c, 0x6c, 0x69, 0x70 },null,
455 null,null,null,null,null,null,null,null,
456 { 0x70, 0x65, 0x72, 0x6d, 0x69, 0x6c },null,{ 0x70, 0x72, 0x69, 0x6d, 0x65 },{ 0x50, 0x72, 0x69, 0x6d, 0x65 },null,null,null,null,
457 null,{ 0x6c, 0x73, 0x61, 0x71, 0x75, 0x6f },{ 0x72, 0x73, 0x61, 0x71, 0x75, 0x6f },null,null,null,{ 0x6f, 0x6c, 0x69, 0x6e, 0x65 },null,
458 null,null,null,null,{ 0x66, 0x72, 0x61, 0x73, 0x6c },null,null,null,
459 null,null,null,null,null,null,null,null,
460 null,null,null,null,null,null,null,null,
461 null,null,null,null,null,null,null,null,
462 null,null,null,null,null,null,null,null,
463 null,null,null,null,null,null,null,null,
464 null,null,null,null,null,null,null,null,
465 null,null,null,null,null,null,null,null,
466 null,null,null,null,null,null,null,null,
467 null,null,null,null,null,null,null,null,
468 null,null,null,null,null,null,null,null,
469 null,null,null,null,null,null,null,null,
470 null,null,null,null,null,null,null,null,
471 null,null,null,null,{ 0x65, 0x75, 0x72, 0x6f },null,null,null,
472 null,null,null,null,null,null,null,null,
473 null,null,null,null,null,null,null,null,
474 null,null,null,null,null,null,null,null,
475 null,null,null,null,null,null,null,null,
476 null,null,null,null,null,null,null,null,
477 null,null,null,null,null,null,null,null,
478 null,null,null,null,null,null,null,null,
479 null,null,null,null,null,null,null,null,
480 null,null,null,null,null,null,null,null,
481 null,null,null,null,null,null,null,null,
482 null,null,null,null,null,null,null,null,
483 null,null,null,null,null,null,null,null,
484 null,{ 0x69, 0x6d, 0x61, 0x67, 0x65 },null,null,null,null,null,null,
485 { 0x77, 0x65, 0x69, 0x65, 0x72, 0x70 },null,null,null,{ 0x72, 0x65, 0x61, 0x6c },null,null,null,
486 null,null,{ 0x74, 0x72, 0x61, 0x64, 0x65 },null,null,null,null,null,
487 null,null,null,null,null,null,null,null,
488 null,null,null,null,null,{ 0x61, 0x6c, 0x65, 0x66, 0x73, 0x79, 0x6d },null,null,
489 null,null,null,null,null,null,null,null,
490 null,null,null,null,null,null,null,null,
491 null,null,null,null,null,null,null,null,
492 null,null,null,null,null,null,null,null,
493 null,null,null,null,null,null,null,null,
494 null,null,null,null,null,null,null,null,
495 null,null,null,null,null,null,null,null,
496 null,null,null,null,null,null,null,null,
497 null,null,null,null,null,null,null,null,
498 null,null,null,null,null,null,null,null,
499 null,null,null,null,null,null,null,null,
500 { 0x6c, 0x61, 0x72, 0x72 },{ 0x75, 0x61, 0x72, 0x72 },{ 0x72, 0x61, 0x72, 0x72 },{ 0x64, 0x61, 0x72, 0x72 },{ 0x68, 0x61, 0x72, 0x72 },null,null,null,
501 null,null,null,null,null,null,null,null,
502 null,null,null,null,null,null,null,null,
503 null,null,null,null,null,null,null,null,
504 null,null,null,null,null,{ 0x63, 0x72, 0x61, 0x72, 0x72 },null,null,
505 null,null,null,null,null,null,null,null,
506 null,null,null,null,null,null,null,null,
507 null,null,null,null,null,null,null,null,
508 { 0x6c, 0x41, 0x72, 0x72 },{ 0x75, 0x41, 0x72, 0x72 },{ 0x72, 0x41, 0x72, 0x72 },{ 0x64, 0x41, 0x72, 0x72 },{ 0x68, 0x41, 0x72, 0x72 },null,null,null,
509 null,null,null,null,null,null,null,null,
510 null,null,null,null,null,null,null,null,
511 null,null,null,null,null,null,null,null,
512 null,null,null,null,null,null,null,null,
513 null,null,null,null,null,null,null,null,
514 { 0x66, 0x6f, 0x72, 0x61, 0x6c, 0x6c },null,{ 0x70, 0x61, 0x72, 0x74 },{ 0x65, 0x78, 0x69, 0x73, 0x74 },null,{ 0x65, 0x6d, 0x70, 0x74, 0x79 },null,{ 0x6e, 0x61, 0x62, 0x6c, 0x61 },
515 { 0x69, 0x73, 0x69, 0x6e },{ 0x6e, 0x6f, 0x74, 0x69, 0x6e },null,{ 0x6e, 0x69 },null,null,null,{ 0x70, 0x72, 0x6f, 0x64 },
516 null,{ 0x73, 0x75, 0x6d },{ 0x6d, 0x69, 0x6e, 0x75, 0x73 },null,null,null,null,{ 0x6c, 0x6f, 0x77, 0x61, 0x73, 0x74 },
517 null,null,{ 0x72, 0x61, 0x64, 0x69, 0x63 },null,null,{ 0x70, 0x72, 0x6f, 0x70 },{ 0x69, 0x6e, 0x66, 0x69, 0x6e },null,
518 { 0x61, 0x6e, 0x67 },null,null,null,null,null,null,{ 0x61, 0x6e, 0x64 },
519 { 0x6f, 0x72 },{ 0x63, 0x61, 0x70 },{ 0x63, 0x75, 0x70 },{ 0x69, 0x6e, 0x74 },null,null,null,null,
520 null,null,null,null,{ 0x74, 0x68, 0x65, 0x72, 0x65, 0x34 },null,null,null,
521 null,null,null,null,{ 0x73, 0x69, 0x6d },null,null,null,
522 null,null,null,null,null,{ 0x63, 0x6f, 0x6e, 0x67 },null,null,
523 { 0x61, 0x73, 0x79, 0x6d, 0x70 },null,null,null,null,null,null,null,
524 null,null,null,null,null,null,null,null,
525 null,null,null,null,null,null,null,null,
526 { 0x6e, 0x65 },{ 0x65, 0x71, 0x75, 0x69, 0x76 },null,null,{ 0x6c, 0x65 },{ 0x67, 0x65 },null,null,
527 null,null,null,null,null,null,null,null,
528 null,null,null,null,null,null,null,null,
529 null,null,null,null,null,null,null,null,
530 null,null,{ 0x73, 0x75, 0x62 },{ 0x73, 0x75, 0x70 },{ 0x6e, 0x73, 0x75, 0x62 },null,{ 0x73, 0x75, 0x62, 0x65 },{ 0x73, 0x75, 0x70, 0x65 },
531 null,null,null,null,null,null,null,null,
532 null,null,null,null,null,{ 0x6f, 0x70, 0x6c, 0x75, 0x73 },null,{ 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73 },
533 null,null,null,null,null,null,null,null,
534 null,null,null,null,null,{ 0x70, 0x65, 0x72, 0x70 },null,null,
535 null,null,null,null,null,null,null,null,
536 null,null,null,null,null,null,null,null,
537 null,null,null,null,null,null,null,null,
538 null,null,null,null,null,{ 0x73, 0x64, 0x6f, 0x74 },null,null,
539 null,null,null,null,null,null,null,null,
540 null,null,null,null,null,null,null,null,
541 null,null,null,null,null,null,null,null,
542 null,null,null,null,null,null,null,null,
543 null,null,null,null,null,null,null,null,
544 null,null,null,null,null,null,null,null,
545 null,null,null,null,null,null,null,null,
546 null,null,null,null,null,null,null,null,
547 { 0x6c, 0x63, 0x65, 0x69, 0x6c },{ 0x72, 0x63, 0x65, 0x69, 0x6c },{ 0x6c, 0x66, 0x6c, 0x6f, 0x6f, 0x72 },{ 0x72, 0x66, 0x6c, 0x6f, 0x6f, 0x72 },null,null,null,null,
548 null,null,null,null,null,null,null,null,
549 null,null,null,null,null,null,null,null,
550 null,null,null,null,null,null,null,null,
551 null,{ 0x6c, 0x61, 0x6e, 0x67 },{ 0x72, 0x61, 0x6e, 0x67 },null,null,null,null,null,
552 null,null,null,null,null,null,null,null,
553 null,null,null,null,null,null,null,null,
554 null,null,null,null,null,null,null,null,
555 null,null,null,null,null,null,null,null,
556 null,null,null,null,null,null,null,null,
557 null,null,null,null,null,null,null,null,
558 null,null,null,null,null,null,null,null,
559 null,null,null,null,null,null,null,null,
560 null,null,null,null,null,null,null,null,
561 null,null,null,null,null,null,null,null,
562 null,null,null,null,null,null,null,null,
563 null,null,null,null,null,null,null,null,
564 null,null,null,null,null,null,null,null,
565 null,null,null,null,null,null,null,null,
566 null,null,null,null,null,null,null,null,
567 null,null,null,null,null,null,null,null,
568 null,null,null,null,null,null,null,null,
569 null,null,null,null,null,null,null,null,
570 null,null,null,null,null,null,null,null,
571 null,null,null,null,null,null,null,null,
572 null,null,null,null,null,null,null,null,
573 null,null,null,null,null,null,null,null,
574 null,null,null,null,null,null,null,null,
575 null,null,null,null,null,null,null,null,
576 null,null,null,null,null,null,null,null,
577 null,null,null,null,null,null,null,null,
578 null,null,null,null,null,null,null,null,
579 null,null,null,null,null,null,null,null,
580 null,null,null,null,null,null,null,null,
581 null,null,null,null,null,null,null,null,
582 null,null,null,null,null,null,null,null,
583 null,null,null,null,null,null,null,null,
584 null,null,null,null,null,null,null,null,
585 null,null,null,null,null,null,null,null,
586 null,null,null,null,null,null,null,null,
587 null,null,null,null,null,null,null,null,
588 null,null,null,null,null,null,null,null,
589 null,null,null,null,null,null,null,null,
590 null,null,null,null,null,null,null,null,
591 null,null,null,null,null,null,null,null,
592 null,null,null,null,null,null,null,null,
593 null,null,null,null,null,null,null,null,
594 null,null,null,null,null,null,null,null,
595 null,null,null,null,null,null,null,null,
596 null,null,null,null,null,null,null,null,
597 null,null,null,null,null,null,null,null,
598 null,null,null,null,null,null,null,null,
599 null,null,null,null,null,null,null,null,
600 null,null,null,null,null,null,null,null,
601 null,null,null,null,null,null,null,null,
602 null,null,null,null,null,null,null,null,
603 null,null,{ 0x6c, 0x6f, 0x7a },null,null,null,null,null,
604 null,null,null,null,null,null,null,null,
605 null,null,null,null,null,null,null,null,
606 null,null,null,null,null,null,null,null,
607 null,null,null,null,null,null,null,null,
608 null,null,null,null,null,null,null,null,
609 null,null,null,null,null,null,null,null,
610 null,null,null,null,null,null,null,null,
611 null,null,null,null,null,null,null,null,
612 null,null,null,null,null,null,null,null,
613 null,null,null,null,null,null,null,null,
614 null,null,null,null,null,null,null,null,
615 null,null,null,null,null,null,null,null,
616 null,null,null,null,null,null,null,null,
617 null,null,null,null,null,null,null,null,
618 null,null,null,null,null,null,null,null,
619 null,null,null,null,null,null,null,null,
620 null,null,null,null,null,null,null,null,
621 null,null,null,null,null,null,null,null,
622 { 0x73, 0x70, 0x61, 0x64, 0x65, 0x73 },null,null,{ 0x63, 0x6c, 0x75, 0x62, 0x73 },null,{ 0x68, 0x65, 0x61, 0x72, 0x74, 0x73 },{ 0x64, 0x69, 0x61, 0x6d, 0x73 },null,
623 null,null,null,null,null,null,null,null,
624 null,null,null,null,null,null,null,null,
625 null,null,null,null,null,null,null,null,
626 null,null,null,null,null,null,null,null,
627 null,null,null,null,null,null,null,null,
628 null,null,null,null,null,null,null,null,
629 null,null,null,null,null,null,null,null,
630 null,null,null,null,null,null,null,null,
631 null,null,null,null,null,null,null,null,
632 null,null,null,null,null,null,null,null,
633 null,null,null,null,null,null,null,null,
634 null,null,null,null,null,null,null,null,
635 null,null,null,null,null,null,null,null,
636 null,null,null,null,null,null,null,null,
637 null,null,null,null,null,null,null,null,
638 null,null,null,null,null,null,null,null,
639 null,null,null,null,null,null,null,null,
640 null,null,null,null,null,null,null,null,
641 null,null,null,null,null,null,null,null,
642 null,null,null,null,null,null,null,null,
643 null,null,null,null,null,null,null,null,
644 null,null,null,null,null,null,null,null,
645 null,null,null,null,null,null,null,null,
646 null,null,null,null,null,null,null,null,
647 null,null,null,null,null,null,null,null,
648 null,null,null,null,null,null,null,null,
649 null,null,null,null,null,null,null,null,
650 null,null,null,null,null,null,null,null,
651 null,null,null,null,null,null,null,null,
652 null,null,null,null,null,null,null,null,
653 null,null,null,null,null,null,null,null,
654 null,null,null,null,null,null,null,null,
655 null,null,null,null,null,null,null,null,
656 null,null,null,null,null,null,null,null,
657 null,null,null,null,null,null,null,null,
658 null,null,null,null,null,null,null,null,
659 null,null,null,null,null,null,null,null,
660 null,null,null,null,null,null,null,null,
661 null,null,null,null,null,null,null,null,
662 null,null,null,null,null,null,null,null,
663 null,null,null,null,null,null,null,null,
664 null,null,null,null,null,null,null,null,
665 null,null,null,null,null,null,null,null,
666 null,null,null,null,null,null,null,null,
667 null,null,null,null,null,null,null,null,
668 null,null,null,null,null