hpricot 0.6-jruby → 0.6.161-jruby

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ require 'mkmf'
2
+ have_header('stdio.h') or exit
3
+ dir_config('fast_xs')
4
+ create_makefile('fast_xs')
@@ -0,0 +1,194 @@
1
+ #define VERSION "0.1"
2
+
3
+ #include <ruby.h>
4
+ #include <assert.h>
5
+ /* #include <stdio.h> */
6
+
7
+ static ID unpack_id;
8
+ static VALUE U_fmt, C_fmt;
9
+
10
+ /* give GCC hints for better branch prediction
11
+ * (we layout branches so that ASCII characters are handled faster) */
12
+ #if defined(__GNUC__) && (__GNUC__ >= 3)
13
+ # define likely(x) __builtin_expect (!!(x), 1)
14
+ # define unlikely(x) __builtin_expect (!!(x), 0)
15
+ #else
16
+ # define unlikely(x) (x)
17
+ # define likely(x) (x)
18
+ #endif
19
+
20
+ /* pass-through certain characters for CP-1252 */
21
+ #define p(x) (x-128)
22
+
23
+ static const int cp_1252[] = {
24
+ 8364, /* 128 => 8364, euro sign */
25
+ p(129), /* 129 => 129, pass-through */
26
+ 8218, /* 130 => 8218, single low-9 quotation mark */
27
+ 402, /* 131 => 402, latin small letter f with hook */
28
+ 8222, /* 132 => 8222, double low-9 quotation mark */
29
+ 8230, /* 133 => 8230, horizontal ellipsis */
30
+ 8224, /* 134 => 8224, dagger */
31
+ 8225, /* 135 => 8225, double dagger */
32
+ 710, /* 136 => 710, modifier letter circumflex accent */
33
+ 8240, /* 137 => 8240, per mille sign */
34
+ 352, /* 138 => 352, latin capital letter s with caron */
35
+ 8249, /* 139 => 8249, single left-pointing angle quotation mark */
36
+ 338, /* 140 => 338, latin capital ligature oe */
37
+ p(141), /* 141 => 141, pass-through */
38
+ 381, /* 142 => 381, latin capital letter z with caron */
39
+ p(143), /* 143 => 143, pass-through */
40
+ p(144), /* 144 => 144, pass-through */
41
+ 8216, /* 145 => 8216, left single quotation mark */
42
+ 8217, /* 146 => 8217, right single quotation mark */
43
+ 8220, /* 147 => 8220, left double quotation mark */
44
+ 8221, /* 148 => 8221, right double quotation mark */
45
+ 8226, /* 149 => 8226, bullet */
46
+ 8211, /* 150 => 8211, en dash */
47
+ 8212, /* 151 => 8212, em dash */
48
+ 732, /* 152 => 732, small tilde */
49
+ 8482, /* 153 => 8482, trade mark sign */
50
+ 353, /* 154 => 353, latin small letter s with caron */
51
+ 8250, /* 155 => 8250, single right-pointing angle quotation mark */
52
+ 339, /* 156 => 339, latin small ligature oe */
53
+ p(157), /* 157 => 157, pass-through */
54
+ 382, /* 158 => 382, latin small letter z with caron */
55
+ 376 /* 159 => 376} latin capital letter y with diaeresis */
56
+ };
57
+
58
+ #define VALID_VALUE(n) \
59
+ (n >= 0x20 && n <= 0xD7FF) || \
60
+ (n >= 0xE000 && n <= 0xFFFD) || \
61
+ (n >= 0x10000 && n <= 0x10FFFF)
62
+
63
+ #define CP_1252_ESCAPE(n) do { \
64
+ if (n >= 128 && n <= 159) \
65
+ n = cp_1252[n - 128]; \
66
+ } while(0)
67
+
68
+ #define return_const_len(x) do { \
69
+ memcpy(buf, x, sizeof(x) - 1); \
70
+ return (sizeof(x) - 1); \
71
+ } while (0)
72
+
73
+ static inline size_t bytes_for(int n)
74
+ {
75
+ if (n < 1000)
76
+ return sizeof("&#999;") - 1;
77
+ if (n < 10000)
78
+ return sizeof("&#9999;") - 1;
79
+ if (n < 100000)
80
+ return sizeof("&#99999;") - 1;
81
+ if (n < 1000000)
82
+ return sizeof("&#999999;") - 1;
83
+ /* if (n < 10000000), we won't have cases above 0x10FFFF */
84
+ return sizeof("&#9999999;") - 1;
85
+ }
86
+
87
+ static long escape(char *buf, int n)
88
+ {
89
+ /* handle ASCII first */
90
+ if (likely(n < 128)) {
91
+ if (likely(n >= 0x20 || n == 0x9 || n == 0xA || n == 0xD)) {
92
+ if (unlikely(n == 34))
93
+ return_const_len("&quot;");
94
+ if (unlikely(n == 38))
95
+ return_const_len("&amp;");
96
+ if (unlikely(n == 60))
97
+ return_const_len("&lt;");
98
+ if (unlikely(n == 62))
99
+ return_const_len("&gt;");
100
+ buf[0] = (char)n;
101
+ return 1;
102
+ }
103
+
104
+ buf[0] = '*';
105
+ return 1;
106
+ }
107
+
108
+ CP_1252_ESCAPE(n);
109
+
110
+ if (VALID_VALUE(n)) {
111
+ /* return snprintf(buf, sizeof("&#1114111;"), "&#%i;", n); */
112
+ extern const char ruby_digitmap[];
113
+ int rv = 3; /* &#; */
114
+ buf += bytes_for(n);
115
+ *--buf = ';';
116
+ do {
117
+ *--buf = ruby_digitmap[(int)(n % 10)];
118
+ ++rv;
119
+ } while (n /= 10);
120
+ *--buf = '#';
121
+ *--buf = '&';
122
+ return rv;
123
+ }
124
+ buf[0] = '*';
125
+ return 1;
126
+ }
127
+
128
+ #undef return_const_len
129
+
130
+ static long escaped_len(int n)
131
+ {
132
+ if (likely(n < 128)) {
133
+ if (unlikely(n == 34))
134
+ return (sizeof("&quot;") - 1);
135
+ if (unlikely(n == 38))
136
+ return (sizeof("&amp;") - 1);
137
+ if (unlikely(n == 60 || n == 62))
138
+ return (sizeof("&gt;") - 1);
139
+ return 1;
140
+ }
141
+
142
+ CP_1252_ESCAPE(n);
143
+
144
+ if (VALID_VALUE(n))
145
+ return bytes_for(n);
146
+ return 1;
147
+ }
148
+
149
+ static VALUE unpack_utf8(VALUE self)
150
+ {
151
+ return rb_funcall(self, unpack_id, 1, U_fmt);
152
+ }
153
+
154
+ static VALUE unpack_uchar(VALUE self)
155
+ {
156
+ return rb_funcall(self, unpack_id, 1, C_fmt);
157
+ }
158
+
159
+ VALUE fast_xs(VALUE self)
160
+ {
161
+ long i;
162
+ struct RArray *array;
163
+ char *s, *c;
164
+ long s_len = 0;
165
+ VALUE *tmp;
166
+
167
+ array = RARRAY(rb_rescue(unpack_utf8, self, unpack_uchar, self));
168
+
169
+ tmp = array->ptr;
170
+ for (i = array->len; --i >= 0; tmp++)
171
+ s_len += escaped_len(NUM2INT(*tmp));
172
+
173
+ c = s = alloca(s_len + 1);
174
+
175
+ tmp = array->ptr;
176
+ for (i = array->len; --i >= 0; tmp++)
177
+ c += escape(c, NUM2INT(*tmp));
178
+
179
+ *c = '\0';
180
+ return rb_str_new(s, s_len);
181
+ }
182
+
183
+ void Init_fast_xs(void)
184
+ {
185
+ assert(cp_1252[159 - 128] == 376); /* just in case I skipped a line */
186
+
187
+ unpack_id = rb_intern("unpack");
188
+ U_fmt = rb_str_new("U*", 2);
189
+ C_fmt = rb_str_new("C*", 2);
190
+ rb_global_variable(&U_fmt);
191
+ rb_global_variable(&C_fmt);
192
+
193
+ rb_define_method(rb_cString, "fast_xs", fast_xs, 0);
194
+ }
@@ -1,3 +1,4 @@
1
+ // line 1 "ext/hpricot_scan/hpricot_scan.java.rl"
1
2
 
2
3
  import java.io.IOException;
3
4
 
@@ -6,7 +7,9 @@ import org.jruby.RubyClass;
6
7
  import org.jruby.RubyHash;
7
8
  import org.jruby.RubyModule;
8
9
  import org.jruby.RubyNumeric;
10
+ import org.jruby.RubyObjectAdapter;
9
11
  import org.jruby.RubyString;
12
+ import org.jruby.javasupport.JavaEmbedUtils;
10
13
  import org.jruby.runtime.Block;
11
14
  import org.jruby.runtime.CallbackFactory;
12
15
  import org.jruby.runtime.builtin.IRubyObject;
@@ -15,6 +18,7 @@ import org.jruby.runtime.load.BasicLibraryService;
15
18
 
16
19
  public class HpricotScanService implements BasicLibraryService {
17
20
  public static String NO_WAY_SERIOUSLY="*** This should not happen, please send a bug report with the HTML you're parsing to why@whytheluckystiff.net. So sorry!";
21
+ private static RubyObjectAdapter rubyApi;
18
22
 
19
23
  public void ELE(IRubyObject N) {
20
24
  if (tokend > tokstart || text) {
@@ -137,743 +141,871 @@ public class HpricotScanService implements BasicLibraryService {
137
141
  return runtime.newString(s);
138
142
  }
139
143
 
144
+ // line 188 "ext/hpricot_scan/hpricot_scan.java.rl"
145
+
146
+
147
+
148
+ // line 149 "ext/hpricot_scan/HpricotScanService.java"
149
+ private static void init__hpricot_scan_actions_0( byte[] r )
150
+ {
151
+ r[0]=0; r[1]=1; r[2]=1; r[3]=1; r[4]=2; r[5]=1; r[6]=4; r[7]=1;
152
+ r[8]=5; r[9]=1; r[10]=6; r[11]=1; r[12]=7; r[13]=1; r[14]=8; r[15]=1;
153
+ r[16]=9; r[17]=1; r[18]=10; r[19]=1; r[20]=11; r[21]=1; r[22]=12; r[23]=1;
154
+ r[24]=14; r[25]=1; r[26]=16; r[27]=1; r[28]=20; r[29]=1; r[30]=21; r[31]=1;
155
+ r[32]=22; r[33]=1; r[34]=24; r[35]=1; r[36]=25; r[37]=1; r[38]=26; r[39]=1;
156
+ r[40]=28; r[41]=1; r[42]=29; r[43]=1; r[44]=30; r[45]=1; r[46]=32; r[47]=1;
157
+ r[48]=33; r[49]=1; r[50]=38; r[51]=1; r[52]=39; r[53]=1; r[54]=40; r[55]=1;
158
+ r[56]=41; r[57]=1; r[58]=42; r[59]=1; r[60]=43; r[61]=1; r[62]=44; r[63]=1;
159
+ r[64]=45; r[65]=1; r[66]=46; r[67]=1; r[68]=47; r[69]=1; r[70]=48; r[71]=1;
160
+ r[72]=49; r[73]=1; r[74]=50; r[75]=2; r[76]=2; r[77]=5; r[78]=2; r[79]=2;
161
+ r[80]=6; r[81]=2; r[82]=2; r[83]=11; r[84]=2; r[85]=2; r[86]=12; r[87]=2;
162
+ r[88]=2; r[89]=14; r[90]=2; r[91]=4; r[92]=39; r[93]=2; r[94]=4; r[95]=40;
163
+ r[96]=2; r[97]=4; r[98]=41; r[99]=2; r[100]=5; r[101]=2; r[102]=2; r[103]=6;
164
+ r[104]=14; r[105]=2; r[106]=7; r[107]=6; r[108]=2; r[109]=7; r[110]=14; r[111]=2;
165
+ r[112]=11; r[113]=12; r[114]=2; r[115]=13; r[116]=3; r[117]=2; r[118]=14; r[119]=6;
166
+ r[120]=2; r[121]=14; r[122]=40; r[123]=2; r[124]=15; r[125]=24; r[126]=2; r[127]=15;
167
+ r[128]=28; r[129]=2; r[130]=15; r[131]=32; r[132]=2; r[133]=15; r[134]=45; r[135]=2;
168
+ r[136]=17; r[137]=23; r[138]=2; r[139]=18; r[140]=27; r[141]=2; r[142]=19; r[143]=31;
169
+ r[144]=2; r[145]=22; r[146]=34; r[147]=2; r[148]=22; r[149]=36; r[150]=3; r[151]=2;
170
+ r[152]=6; r[153]=14; r[154]=3; r[155]=2; r[156]=14; r[157]=6; r[158]=3; r[159]=6;
171
+ r[160]=7; r[161]=14; r[162]=3; r[163]=6; r[164]=14; r[165]=40; r[166]=3; r[167]=7;
172
+ r[168]=14; r[169]=40; r[170]=3; r[171]=14; r[172]=6; r[173]=40; r[174]=3; r[175]=14;
173
+ r[176]=13; r[177]=3; r[178]=3; r[179]=22; r[180]=0; r[181]=37; r[182]=3; r[183]=22;
174
+ r[184]=2; r[185]=34; r[186]=3; r[187]=22; r[188]=14; r[189]=35; r[190]=4; r[191]=2;
175
+ r[192]=14; r[193]=13; r[194]=3; r[195]=4; r[196]=6; r[197]=7; r[198]=14; r[199]=40;
176
+ r[200]=4; r[201]=22; r[202]=2; r[203]=14; r[204]=35; r[205]=4; r[206]=22; r[207]=6;
177
+ r[208]=14; r[209]=35; r[210]=4; r[211]=22; r[212]=7; r[213]=14; r[214]=35; r[215]=4;
178
+ r[216]=22; r[217]=14; r[218]=6; r[219]=35; r[220]=5; r[221]=22; r[222]=2; r[223]=6;
179
+ r[224]=14; r[225]=35; r[226]=5; r[227]=22; r[228]=2; r[229]=14; r[230]=6; r[231]=35;
180
+ r[232]=5; r[233]=22; r[234]=6; r[235]=7; r[236]=14; r[237]=35;
181
+ }
140
182
 
183
+ private static byte[] create__hpricot_scan_actions( )
184
+ {
185
+ byte[] r = new byte[238];
186
+ init__hpricot_scan_actions_0( r );
187
+ return r;
188
+ }
141
189
 
190
+ private static final byte _hpricot_scan_actions[] = create__hpricot_scan_actions();
191
+
192
+
193
+ private static void init__hpricot_scan_key_offsets_0( short[] r )
194
+ {
195
+ r[0]=0; r[1]=3; r[2]=4; r[3]=5; r[4]=6; r[5]=7; r[6]=8; r[7]=9;
196
+ r[8]=10; r[9]=13; r[10]=22; r[11]=37; r[12]=44; r[13]=45; r[14]=46; r[15]=47;
197
+ r[16]=48; r[17]=49; r[18]=52; r[19]=57; r[20]=69; r[21]=81; r[22]=86; r[23]=93;
198
+ r[24]=94; r[25]=95; r[26]=100; r[27]=101; r[28]=105; r[29]=106; r[30]=107; r[31]=121;
199
+ r[32]=135; r[33]=152; r[34]=169; r[35]=186; r[36]=203; r[37]=210; r[38]=212; r[39]=214;
200
+ r[40]=220; r[41]=222; r[42]=227; r[43]=232; r[44]=238; r[45]=240; r[46]=245; r[47]=251;
201
+ r[48]=265; r[49]=266; r[50]=267; r[51]=268; r[52]=269; r[53]=270; r[54]=271; r[55]=272;
202
+ r[56]=273; r[57]=274; r[58]=275; r[59]=276; r[60]=282; r[61]=296; r[62]=300; r[63]=313;
203
+ r[64]=326; r[65]=340; r[66]=354; r[67]=355; r[68]=366; r[69]=375; r[70]=388; r[71]=405;
204
+ r[72]=423; r[73]=441; r[74]=450; r[75]=461; r[76]=480; r[77]=499; r[78]=510; r[79]=521;
205
+ r[80]=536; r[81]=538; r[82]=540; r[83]=556; r[84]=572; r[85]=575; r[86]=587; r[87]=599;
206
+ r[88]=619; r[89]=639; r[90]=658; r[91]=677; r[92]=697; r[93]=717; r[94]=728; r[95]=739;
207
+ r[96]=751; r[97]=763; r[98]=775; r[99]=791; r[100]=794; r[101]=809; r[102]=811; r[103]=813;
208
+ r[104]=829; r[105]=845; r[106]=848; r[107]=860; r[108]=871; r[109]=890; r[110]=910; r[111]=930;
209
+ r[112]=941; r[113]=952; r[114]=964; r[115]=984; r[116]=1004; r[117]=1016; r[118]=1036; r[119]=1057;
210
+ r[120]=1074; r[121]=1091; r[122]=1095; r[123]=1098; r[124]=1110; r[125]=1122; r[126]=1142; r[127]=1162;
211
+ r[128]=1182; r[129]=1194; r[130]=1206; r[131]=1226; r[132]=1242; r[133]=1258; r[134]=1270; r[135]=1291;
212
+ r[136]=1310; r[137]=1313; r[138]=1328; r[139]=1340; r[140]=1355; r[141]=1358; r[142]=1369; r[143]=1371;
213
+ r[144]=1373; r[145]=1384; r[146]=1391; r[147]=1404; r[148]=1418; r[149]=1432; r[150]=1445; r[151]=1446;
214
+ r[152]=1447; r[153]=1448; r[154]=1449; r[155]=1450; r[156]=1451; r[157]=1455; r[158]=1460; r[159]=1469;
215
+ r[160]=1479; r[161]=1484; r[162]=1491; r[163]=1492; r[164]=1493; r[165]=1494; r[166]=1495; r[167]=1496;
216
+ r[168]=1497; r[169]=1498; r[170]=1499; r[171]=1503; r[172]=1508; r[173]=1512; r[174]=1522; r[175]=1527;
217
+ r[176]=1533; r[177]=1534; r[178]=1535; r[179]=1536; r[180]=1537; r[181]=1538; r[182]=1539; r[183]=1540;
218
+ r[184]=1541; r[185]=1542; r[186]=1546; r[187]=1551; r[188]=1553; r[189]=1554; r[190]=1555; r[191]=1560;
219
+ r[192]=1561; r[193]=1562; r[194]=1564; r[195]=1565; r[196]=1566; r[197]=1567; r[198]=1568; r[199]=1572;
220
+ r[200]=1582; r[201]=1591; r[202]=1601; r[203]=1602; r[204]=1603; r[205]=1605; r[206]=1614; r[207]=1615;
221
+ r[208]=1616; r[209]=1617; r[210]=1619; r[211]=1621; r[212]=1624; r[213]=1627; r[214]=1631; r[215]=1633;
222
+ r[216]=1634; r[217]=1636; r[218]=1637; r[219]=1640;
223
+ }
142
224
 
143
- static final byte[] _hpricot_scan_actions = {
144
- 0, 1, 1, 1, 2, 1, 4, 1,
145
- 5, 1, 6, 1, 7, 1, 8, 1,
146
- 9, 1, 10, 1, 11, 1, 12, 1,
147
- 14, 1, 16, 1, 20, 1, 21, 1,
148
- 22, 1, 24, 1, 25, 1, 26, 1,
149
- 28, 1, 29, 1, 30, 1, 32, 1,
150
- 33, 1, 38, 1, 39, 1, 40, 1,
151
- 41, 1, 42, 1, 43, 1, 44, 1,
152
- 45, 1, 46, 1, 47, 1, 48, 1,
153
- 49, 1, 50, 2, 2, 5, 2, 2,
154
- 6, 2, 2, 11, 2, 2, 12, 2,
155
- 2, 14, 2, 4, 39, 2, 4, 40,
156
- 2, 4, 41, 2, 5, 2, 2, 6,
157
- 14, 2, 7, 6, 2, 7, 14, 2,
158
- 11, 12, 2, 13, 3, 2, 14, 6,
159
- 2, 14, 40, 2, 15, 24, 2, 15,
160
- 28, 2, 15, 32, 2, 15, 45, 2,
161
- 17, 23, 2, 18, 27, 2, 19, 31,
162
- 2, 22, 34, 2, 22, 36, 3, 2,
163
- 6, 14, 3, 2, 14, 6, 3, 6,
164
- 7, 14, 3, 6, 14, 40, 3, 7,
165
- 14, 40, 3, 14, 6, 40, 3, 14,
166
- 13, 3, 3, 22, 0, 37, 3, 22,
167
- 2, 34, 3, 22, 14, 35, 4, 2,
168
- 14, 13, 3, 4, 6, 7, 14, 40,
169
- 4, 22, 2, 14, 35, 4, 22, 6,
170
- 14, 35, 4, 22, 7, 14, 35, 4,
171
- 22, 14, 6, 35, 5, 22, 2, 6,
172
- 14, 35, 5, 22, 2, 14, 6, 35,
173
- 5, 22, 6, 7, 14, 35
174
- };
175
-
176
- static final short[] _hpricot_scan_key_offsets = {
177
- 0, 3, 4, 5, 6, 7, 8, 9,
178
- 10, 13, 22, 37, 44, 45, 46, 47,
179
- 48, 49, 52, 57, 69, 81, 86, 93,
180
- 94, 95, 100, 101, 105, 106, 107, 121,
181
- 135, 152, 169, 186, 203, 210, 212, 214,
182
- 220, 222, 227, 232, 238, 240, 245, 251,
183
- 265, 266, 267, 268, 269, 270, 271, 272,
184
- 273, 274, 275, 276, 282, 296, 300, 313,
185
- 326, 340, 354, 355, 366, 375, 388, 405,
186
- 423, 441, 450, 461, 480, 499, 510, 521,
187
- 536, 538, 540, 556, 572, 575, 587, 599,
188
- 619, 639, 658, 677, 697, 717, 728, 739,
189
- 751, 763, 775, 791, 794, 809, 811, 813,
190
- 829, 845, 848, 860, 871, 890, 910, 930,
191
- 941, 952, 964, 984, 1004, 1016, 1036, 1057,
192
- 1074, 1091, 1095, 1098, 1110, 1122, 1142, 1162,
193
- 1182, 1194, 1206, 1226, 1242, 1258, 1270, 1291,
194
- 1310, 1313, 1328, 1340, 1355, 1358, 1369, 1371,
195
- 1373, 1384, 1391, 1404, 1418, 1432, 1445, 1446,
196
- 1447, 1448, 1449, 1450, 1451, 1455, 1460, 1469,
197
- 1479, 1484, 1491, 1492, 1493, 1494, 1495, 1496,
198
- 1497, 1498, 1499, 1503, 1508, 1512, 1522, 1527,
199
- 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
200
- 1541, 1542, 1546, 1551, 1553, 1554, 1555, 1560,
201
- 1561, 1562, 1564, 1565, 1566, 1567, 1568, 1572,
202
- 1582, 1591, 1601, 1602, 1603, 1605, 1614, 1615,
203
- 1616, 1617, 1619, 1621, 1624, 1627, 1631, 1633,
204
- 1634, 1636, 1637, 1640
205
- };
206
-
207
- static final char[] _hpricot_scan_trans_keys = {
208
- 45, 68, 91, 45, 79, 67, 84, 89,
209
- 80, 69, 32, 9, 13, 32, 58, 95,
210
- 9, 13, 65, 90, 97, 122, 32, 62,
211
- 63, 91, 95, 9, 13, 45, 46, 48,
212
- 58, 65, 90, 97, 122, 32, 62, 80,
213
- 83, 91, 9, 13, 85, 66, 76, 73,
214
- 67, 32, 9, 13, 32, 34, 39, 9,
215
- 13, 9, 34, 61, 95, 32, 37, 39,
216
- 59, 63, 90, 97, 122, 9, 34, 61,
217
- 95, 32, 37, 39, 59, 63, 90, 97,
218
- 122, 32, 62, 91, 9, 13, 32, 34,
219
- 39, 62, 91, 9, 13, 34, 34, 32,
220
- 62, 91, 9, 13, 93, 32, 62, 9,
221
- 13, 39, 39, 9, 39, 61, 95, 32,
222
- 33, 35, 37, 40, 59, 63, 90, 97,
223
- 122, 9, 39, 61, 95, 32, 33, 35,
224
- 37, 40, 59, 63, 90, 97, 122, 9,
225
- 32, 33, 39, 62, 91, 95, 10, 13,
226
- 35, 37, 40, 59, 61, 90, 97, 122,
227
- 9, 32, 34, 39, 62, 91, 95, 10,
228
- 13, 33, 37, 40, 59, 61, 90, 97,
229
- 122, 9, 32, 33, 39, 62, 91, 95,
230
- 10, 13, 35, 37, 40, 59, 61, 90,
231
- 97, 122, 9, 32, 34, 39, 62, 91,
232
- 95, 10, 13, 33, 37, 40, 59, 61,
233
- 90, 97, 122, 32, 34, 39, 62, 91,
234
- 9, 13, 34, 39, 34, 39, 32, 39,
235
- 62, 91, 9, 13, 39, 93, 32, 62,
236
- 93, 9, 13, 32, 39, 62, 9, 13,
237
- 32, 34, 62, 91, 9, 13, 34, 93,
238
- 32, 34, 62, 9, 13, 32, 39, 62,
239
- 91, 9, 13, 9, 39, 61, 95, 32,
240
- 33, 35, 37, 40, 59, 63, 90, 97,
241
- 122, 89, 83, 84, 69, 77, 67, 68,
242
- 65, 84, 65, 91, 58, 95, 65, 90,
243
- 97, 122, 32, 62, 63, 95, 9, 13,
244
- 45, 46, 48, 58, 65, 90, 97, 122,
245
- 32, 62, 9, 13, 32, 47, 62, 63,
246
- 95, 9, 13, 45, 58, 65, 90, 97,
247
- 122, 32, 47, 62, 63, 95, 9, 13,
248
- 45, 58, 65, 90, 97, 122, 32, 47,
249
- 61, 62, 63, 95, 9, 13, 45, 58,
250
- 65, 90, 97, 122, 32, 47, 61, 62,
251
- 63, 95, 9, 13, 45, 58, 65, 90,
252
- 97, 122, 62, 13, 32, 34, 39, 47,
253
- 60, 62, 9, 10, 11, 12, 13, 32,
254
- 47, 60, 62, 9, 10, 11, 12, 32,
255
- 47, 62, 63, 95, 9, 13, 45, 58,
256
- 65, 90, 97, 122, 13, 32, 47, 60,
257
- 62, 63, 95, 9, 10, 11, 12, 45,
258
- 58, 65, 90, 97, 122, 13, 32, 47,
259
- 60, 61, 62, 63, 95, 9, 10, 11,
260
- 12, 45, 58, 65, 90, 97, 122, 13,
261
- 32, 47, 60, 61, 62, 63, 95, 9,
262
- 10, 11, 12, 45, 58, 65, 90, 97,
263
- 122, 13, 32, 47, 60, 62, 9, 10,
264
- 11, 12, 13, 32, 34, 39, 47, 60,
265
- 62, 9, 10, 11, 12, 13, 32, 34,
266
- 39, 47, 60, 62, 63, 95, 9, 10,
267
- 11, 12, 45, 58, 65, 90, 97, 122,
268
- 13, 32, 34, 39, 47, 60, 62, 63,
269
- 95, 9, 10, 11, 12, 45, 58, 65,
270
- 90, 97, 122, 13, 32, 34, 47, 60,
271
- 62, 92, 9, 10, 11, 12, 13, 32,
272
- 34, 47, 60, 62, 92, 9, 10, 11,
273
- 12, 32, 34, 47, 62, 63, 92, 95,
274
- 9, 13, 45, 58, 65, 90, 97, 122,
275
- 34, 92, 34, 92, 32, 34, 47, 61,
276
- 62, 63, 92, 95, 9, 13, 45, 58,
277
- 65, 90, 97, 122, 32, 34, 47, 61,
278
- 62, 63, 92, 95, 9, 13, 45, 58,
279
- 65, 90, 97, 122, 34, 62, 92, 13,
280
- 32, 34, 39, 47, 60, 62, 92, 9,
281
- 10, 11, 12, 13, 32, 34, 39, 47,
282
- 60, 62, 92, 9, 10, 11, 12, 13,
283
- 32, 34, 39, 47, 60, 62, 63, 92,
284
- 95, 9, 10, 11, 12, 45, 58, 65,
285
- 90, 97, 122, 13, 32, 34, 39, 47,
286
- 60, 62, 63, 92, 95, 9, 10, 11,
287
- 12, 45, 58, 65, 90, 97, 122, 13,
288
- 32, 34, 47, 60, 62, 63, 92, 95,
289
- 9, 10, 11, 12, 45, 58, 65, 90,
290
- 97, 122, 13, 32, 34, 47, 60, 62,
291
- 63, 92, 95, 9, 10, 11, 12, 45,
292
- 58, 65, 90, 97, 122, 13, 32, 34,
293
- 47, 60, 61, 62, 63, 92, 95, 9,
294
- 10, 11, 12, 45, 58, 65, 90, 97,
295
- 122, 13, 32, 34, 47, 60, 61, 62,
296
- 63, 92, 95, 9, 10, 11, 12, 45,
297
- 58, 65, 90, 97, 122, 13, 32, 34,
298
- 47, 60, 62, 92, 9, 10, 11, 12,
299
- 13, 32, 34, 47, 60, 62, 92, 9,
300
- 10, 11, 12, 13, 32, 34, 39, 47,
301
- 60, 62, 92, 9, 10, 11, 12, 13,
302
- 32, 34, 39, 47, 60, 62, 92, 9,
303
- 10, 11, 12, 13, 32, 34, 39, 47,
304
- 60, 62, 92, 9, 10, 11, 12, 32,
305
- 34, 39, 47, 62, 63, 92, 95, 9,
306
- 13, 45, 58, 65, 90, 97, 122, 34,
307
- 39, 92, 32, 39, 47, 62, 63, 92,
308
- 95, 9, 13, 45, 58, 65, 90, 97,
309
- 122, 39, 92, 39, 92, 32, 39, 47,
310
- 61, 62, 63, 92, 95, 9, 13, 45,
311
- 58, 65, 90, 97, 122, 32, 39, 47,
312
- 61, 62, 63, 92, 95, 9, 13, 45,
313
- 58, 65, 90, 97, 122, 39, 62, 92,
314
- 13, 32, 34, 39, 47, 60, 62, 92,
315
- 9, 10, 11, 12, 13, 32, 39, 47,
316
- 60, 62, 92, 9, 10, 11, 12, 13,
317
- 32, 39, 47, 60, 62, 63, 92, 95,
318
- 9, 10, 11, 12, 45, 58, 65, 90,
319
- 97, 122, 13, 32, 39, 47, 60, 61,
320
- 62, 63, 92, 95, 9, 10, 11, 12,
321
- 45, 58, 65, 90, 97, 122, 13, 32,
322
- 39, 47, 60, 61, 62, 63, 92, 95,
323
- 9, 10, 11, 12, 45, 58, 65, 90,
324
- 97, 122, 13, 32, 39, 47, 60, 62,
325
- 92, 9, 10, 11, 12, 13, 32, 39,
326
- 47, 60, 62, 92, 9, 10, 11, 12,
327
- 13, 32, 34, 39, 47, 60, 62, 92,
328
- 9, 10, 11, 12, 13, 32, 34, 39,
329
- 47, 60, 62, 63, 92, 95, 9, 10,
330
- 11, 12, 45, 58, 65, 90, 97, 122,
331
- 13, 32, 34, 39, 47, 60, 62, 63,
332
- 92, 95, 9, 10, 11, 12, 45, 58,
333
- 65, 90, 97, 122, 13, 32, 34, 39,
334
- 47, 60, 62, 92, 9, 10, 11, 12,
335
- 13, 32, 34, 39, 47, 60, 62, 63,
336
- 92, 95, 9, 10, 11, 12, 45, 58,
337
- 65, 90, 97, 122, 13, 32, 34, 39,
338
- 47, 60, 61, 62, 63, 92, 95, 9,
339
- 10, 11, 12, 45, 58, 65, 90, 97,
340
- 122, 32, 34, 39, 47, 61, 62, 63,
341
- 92, 95, 9, 13, 45, 58, 65, 90,
342
- 97, 122, 32, 34, 39, 47, 61, 62,
343
- 63, 92, 95, 9, 13, 45, 58, 65,
344
- 90, 97, 122, 34, 39, 62, 92, 34,
345
- 39, 92, 13, 32, 34, 39, 47, 60,
346
- 62, 92, 9, 10, 11, 12, 13, 32,
347
- 34, 39, 47, 60, 62, 92, 9, 10,
348
- 11, 12, 13, 32, 34, 39, 47, 60,
349
- 62, 63, 92, 95, 9, 10, 11, 12,
350
- 45, 58, 65, 90, 97, 122, 13, 32,
351
- 34, 39, 47, 60, 62, 63, 92, 95,
352
- 9, 10, 11, 12, 45, 58, 65, 90,
353
- 97, 122, 13, 32, 34, 39, 47, 60,
354
- 62, 63, 92, 95, 9, 10, 11, 12,
355
- 45, 58, 65, 90, 97, 122, 13, 32,
356
- 34, 39, 47, 60, 62, 92, 9, 10,
357
- 11, 12, 13, 32, 34, 39, 47, 60,
358
- 62, 92, 9, 10, 11, 12, 13, 32,
359
- 34, 39, 47, 60, 62, 63, 92, 95,
360
- 9, 10, 11, 12, 45, 58, 65, 90,
361
- 97, 122, 32, 34, 39, 47, 62, 63,
362
- 92, 95, 9, 13, 45, 58, 65, 90,
363
- 97, 122, 32, 34, 39, 47, 62, 63,
364
- 92, 95, 9, 13, 45, 58, 65, 90,
365
- 97, 122, 13, 32, 34, 39, 47, 60,
366
- 62, 92, 9, 10, 11, 12, 13, 32,
367
- 34, 39, 47, 60, 61, 62, 63, 92,
368
- 95, 9, 10, 11, 12, 45, 58, 65,
369
- 90, 97, 122, 13, 32, 39, 47, 60,
370
- 62, 63, 92, 95, 9, 10, 11, 12,
371
- 45, 58, 65, 90, 97, 122, 34, 39,
372
- 92, 32, 39, 47, 62, 63, 92, 95,
373
- 9, 13, 45, 58, 65, 90, 97, 122,
374
- 13, 32, 34, 39, 47, 60, 62, 92,
375
- 9, 10, 11, 12, 32, 34, 47, 62,
376
- 63, 92, 95, 9, 13, 45, 58, 65,
377
- 90, 97, 122, 34, 39, 92, 13, 32,
378
- 39, 47, 60, 62, 92, 9, 10, 11,
379
- 12, 34, 92, 39, 92, 13, 32, 34,
380
- 39, 47, 60, 62, 9, 10, 11, 12,
381
- 58, 95, 120, 65, 90, 97, 122, 32,
382
- 63, 95, 9, 13, 45, 46, 48, 58,
383
- 65, 90, 97, 122, 32, 63, 95, 109,
384
- 9, 13, 45, 46, 48, 58, 65, 90,
385
- 97, 122, 32, 63, 95, 108, 9, 13,
386
- 45, 46, 48, 58, 65, 90, 97, 122,
387
- 32, 63, 95, 9, 13, 45, 46, 48,
388
- 58, 65, 90, 97, 122, 101, 114, 115,
389
- 105, 111, 110, 32, 61, 9, 13, 32,
390
- 34, 39, 9, 13, 95, 45, 46, 48,
391
- 58, 65, 90, 97, 122, 34, 95, 45,
392
- 46, 48, 58, 65, 90, 97, 122, 32,
393
- 62, 63, 9, 13, 32, 62, 63, 101,
394
- 115, 9, 13, 62, 110, 99, 111, 100,
395
- 105, 110, 103, 32, 61, 9, 13, 32,
396
- 34, 39, 9, 13, 65, 90, 97, 122,
397
- 34, 95, 45, 46, 48, 57, 65, 90,
398
- 97, 122, 32, 62, 63, 9, 13, 32,
399
- 62, 63, 115, 9, 13, 116, 97, 110,
400
- 100, 97, 108, 111, 110, 101, 32, 61,
401
- 9, 13, 32, 34, 39, 9, 13, 110,
402
- 121, 111, 34, 32, 62, 63, 9, 13,
403
- 101, 115, 110, 121, 111, 39, 101, 115,
404
- 65, 90, 97, 122, 39, 95, 45, 46,
405
- 48, 57, 65, 90, 97, 122, 95, 45,
406
- 46, 48, 58, 65, 90, 97, 122, 39,
407
- 95, 45, 46, 48, 58, 65, 90, 97,
408
- 122, 62, 62, 10, 60, 33, 47, 58,
409
- 63, 95, 65, 90, 97, 122, 39, 93,
410
- 34, 34, 92, 39, 92, 34, 39, 92,
411
- 32, 9, 13, 32, 118, 9, 13, 10,
412
- 45, 45, 10, 93, 93, 10, 62, 63,
413
- 62, 0
414
- };
415
-
416
- static final byte[] _hpricot_scan_single_lengths = {
417
- 3, 1, 1, 1, 1, 1, 1, 1,
418
- 1, 3, 5, 5, 1, 1, 1, 1,
419
- 1, 1, 3, 4, 4, 3, 5, 1,
420
- 1, 3, 1, 2, 1, 1, 4, 4,
421
- 7, 7, 7, 7, 5, 2, 2, 4,
422
- 2, 3, 3, 4, 2, 3, 4, 4,
423
- 1, 1, 1, 1, 1, 1, 1, 1,
424
- 1, 1, 1, 2, 4, 2, 5, 5,
425
- 6, 6, 1, 7, 5, 5, 7, 8,
426
- 8, 5, 7, 9, 9, 7, 7, 7,
427
- 2, 2, 8, 8, 3, 8, 8, 10,
428
- 10, 9, 9, 10, 10, 7, 7, 8,
429
- 8, 8, 8, 3, 7, 2, 2, 8,
430
- 8, 3, 8, 7, 9, 10, 10, 7,
431
- 7, 8, 10, 10, 8, 10, 11, 9,
432
- 9, 4, 3, 8, 8, 10, 10, 10,
433
- 8, 8, 10, 8, 8, 8, 11, 9,
434
- 3, 7, 8, 7, 3, 7, 2, 2,
435
- 7, 3, 3, 4, 4, 3, 1, 1,
436
- 1, 1, 1, 1, 2, 3, 1, 2,
437
- 3, 5, 1, 1, 1, 1, 1, 1,
438
- 1, 1, 2, 3, 0, 2, 3, 4,
439
- 1, 1, 1, 1, 1, 1, 1, 1,
440
- 1, 2, 3, 2, 1, 1, 3, 1,
441
- 1, 2, 1, 1, 1, 1, 0, 2,
442
- 1, 2, 1, 1, 2, 5, 1, 1,
443
- 1, 2, 2, 3, 1, 2, 2, 1,
444
- 2, 1, 3, 1
445
- };
446
-
447
- static final byte[] _hpricot_scan_range_lengths = {
448
- 0, 0, 0, 0, 0, 0, 0, 0,
449
- 1, 3, 5, 1, 0, 0, 0, 0,
450
- 0, 1, 1, 4, 4, 1, 1, 0,
451
- 0, 1, 0, 1, 0, 0, 5, 5,
452
- 5, 5, 5, 5, 1, 0, 0, 1,
453
- 0, 1, 1, 1, 0, 1, 1, 5,
454
- 0, 0, 0, 0, 0, 0, 0, 0,
455
- 0, 0, 0, 2, 5, 1, 4, 4,
456
- 4, 4, 0, 2, 2, 4, 5, 5,
457
- 5, 2, 2, 5, 5, 2, 2, 4,
458
- 0, 0, 4, 4, 0, 2, 2, 5,
459
- 5, 5, 5, 5, 5, 2, 2, 2,
460
- 2, 2, 4, 0, 4, 0, 0, 4,
461
- 4, 0, 2, 2, 5, 5, 5, 2,
462
- 2, 2, 5, 5, 2, 5, 5, 4,
463
- 4, 0, 0, 2, 2, 5, 5, 5,
464
- 2, 2, 5, 4, 4, 2, 5, 5,
465
- 0, 4, 2, 4, 0, 2, 0, 0,
466
- 2, 2, 5, 5, 5, 5, 0, 0,
467
- 0, 0, 0, 0, 1, 1, 4, 4,
468
- 1, 1, 0, 0, 0, 0, 0, 0,
469
- 0, 0, 1, 1, 2, 4, 1, 1,
470
- 0, 0, 0, 0, 0, 0, 0, 0,
471
- 0, 1, 1, 0, 0, 0, 1, 0,
472
- 0, 0, 0, 0, 0, 0, 2, 4,
473
- 4, 4, 0, 0, 0, 2, 0, 0,
474
- 0, 0, 0, 0, 1, 1, 0, 0,
475
- 0, 0, 0, 0
476
- };
477
-
478
- static final short[] _hpricot_scan_index_offsets = {
479
- 0, 4, 6, 8, 10, 12, 14, 16,
480
- 18, 21, 28, 39, 46, 48, 50, 52,
481
- 54, 56, 59, 64, 73, 82, 87, 94,
482
- 96, 98, 103, 105, 109, 111, 113, 123,
483
- 133, 146, 159, 172, 185, 192, 195, 198,
484
- 204, 207, 212, 217, 223, 226, 231, 237,
485
- 247, 249, 251, 253, 255, 257, 259, 261,
486
- 263, 265, 267, 269, 274, 284, 288, 298,
487
- 308, 319, 330, 332, 342, 350, 360, 373,
488
- 387, 401, 409, 419, 434, 449, 459, 469,
489
- 481, 484, 487, 500, 513, 517, 528, 539,
490
- 555, 571, 586, 601, 617, 633, 643, 653,
491
- 664, 675, 686, 699, 703, 715, 718, 721,
492
- 734, 747, 751, 762, 772, 787, 803, 819,
493
- 829, 839, 850, 866, 882, 893, 909, 926,
494
- 940, 954, 959, 963, 974, 985, 1001, 1017,
495
- 1033, 1044, 1055, 1071, 1084, 1097, 1108, 1125,
496
- 1140, 1144, 1156, 1167, 1179, 1183, 1193, 1196,
497
- 1199, 1209, 1215, 1224, 1234, 1244, 1253, 1255,
498
- 1257, 1259, 1261, 1263, 1265, 1269, 1274, 1280,
499
- 1287, 1292, 1299, 1301, 1303, 1305, 1307, 1309,
500
- 1311, 1313, 1315, 1319, 1324, 1327, 1334, 1339,
501
- 1345, 1347, 1349, 1351, 1353, 1355, 1357, 1359,
502
- 1361, 1363, 1367, 1372, 1375, 1377, 1379, 1384,
503
- 1386, 1388, 1391, 1393, 1395, 1397, 1399, 1402,
504
- 1409, 1415, 1422, 1424, 1426, 1429, 1437, 1439,
505
- 1441, 1443, 1446, 1449, 1453, 1456, 1460, 1463,
506
- 1465, 1468, 1470, 1474
507
- };
508
-
509
- static final short[] _hpricot_scan_indicies = {
510
- 335, 336, 337, 296, 356, 296, 349, 296,
511
- 399, 296, 401, 296, 354, 296, 350, 296,
512
- 400, 296, 308, 308, 296, 308, 309, 309,
513
- 308, 309, 309, 296, 328, 330, 329, 331,
514
- 329, 328, 329, 329, 329, 329, 296, 310,
515
- 302, 311, 312, 0, 310, 296, 353, 296,
516
- 342, 296, 347, 296, 346, 296, 343, 296,
517
- 304, 304, 296, 304, 305, 306, 304, 296,
518
- 321, 320, 321, 321, 321, 321, 321, 321,
519
- 296, 319, 320, 319, 319, 319, 319, 319,
520
- 319, 296, 298, 302, 0, 298, 296, 298,
521
- 300, 307, 302, 0, 298, 296, 6, 222,
522
- 6, 13, 358, 302, 0, 358, 69, 1,
523
- 0, 1, 302, 1, 69, 6, 182, 6,
524
- 5, 322, 323, 322, 322, 322, 322, 322,
525
- 322, 322, 296, 299, 303, 299, 299, 299,
526
- 299, 299, 299, 299, 296, 297, 297, 299,
527
- 303, 302, 0, 299, 298, 299, 299, 299,
528
- 299, 296, 297, 297, 300, 301, 302, 0,
529
- 299, 298, 299, 299, 299, 299, 296, 186,
530
- 186, 188, 42, 184, 185, 188, 187, 188,
531
- 188, 188, 188, 182, 43, 43, 38, 44,
532
- 40, 34, 41, 37, 41, 41, 41, 41,
533
- 5, 37, 38, 39, 40, 34, 37, 5,
534
- 63, 224, 223, 63, 64, 62, 371, 6,
535
- 40, 34, 371, 5, 35, 36, 34, 26,
536
- 27, 1, 26, 0, 36, 6, 40, 36,
537
- 5, 60, 6, 61, 58, 60, 13, 35,
538
- 59, 58, 59, 6, 61, 59, 13, 183,
539
- 6, 184, 185, 183, 182, 41, 42, 41,
540
- 41, 41, 41, 41, 41, 41, 5, 403,
541
- 296, 351, 296, 352, 296, 345, 296, 348,
542
- 296, 398, 296, 344, 296, 341, 296, 402,
543
- 296, 397, 296, 355, 296, 338, 338, 338,
544
- 338, 296, 332, 334, 333, 333, 332, 333,
545
- 333, 333, 333, 296, 313, 314, 313, 296,
546
- 324, 326, 327, 325, 325, 324, 325, 325,
547
- 325, 296, 315, 317, 318, 316, 316, 315,
548
- 316, 316, 316, 296, 364, 366, 367, 368,
549
- 365, 365, 364, 365, 365, 365, 69, 359,
550
- 361, 362, 162, 360, 360, 359, 360, 360,
551
- 360, 69, 369, 69, 157, 157, 159, 160,
552
- 161, 69, 162, 157, 158, 156, 66, 66,
553
- 68, 69, 70, 66, 67, 65, 363, 361,
554
- 162, 360, 360, 363, 360, 360, 360, 69,
555
- 66, 66, 74, 69, 76, 73, 73, 66,
556
- 67, 73, 73, 73, 65, 132, 132, 135,
557
- 69, 136, 137, 134, 134, 132, 133, 134,
558
- 134, 134, 65, 71, 71, 74, 69, 75,
559
- 76, 73, 73, 71, 72, 73, 73, 73,
560
- 65, 66, 66, 68, 69, 70, 66, 67,
561
- 65, 226, 226, 228, 229, 230, 69, 70,
562
- 226, 227, 156, 163, 163, 159, 160, 161,
563
- 69, 162, 165, 165, 163, 164, 165, 165,
564
- 165, 156, 226, 226, 228, 229, 231, 69,
565
- 76, 165, 165, 226, 227, 165, 165, 165,
566
- 156, 248, 248, 84, 246, 199, 250, 195,
567
- 248, 249, 189, 92, 92, 84, 95, 7,
568
- 96, 97, 92, 93, 91, 372, 3, 48,
569
- 50, 47, 8, 47, 372, 47, 47, 47,
570
- 7, 3, 8, 7, 11, 8, 7, 122,
571
- 3, 124, 125, 126, 123, 8, 123, 122,
572
- 123, 123, 123, 7, 46, 3, 48, 49,
573
- 50, 47, 8, 47, 46, 47, 47, 47,
574
- 7, 3, 45, 8, 7, 190, 190, 192,
575
- 193, 194, 7, 50, 195, 190, 191, 189,
576
- 196, 196, 192, 193, 194, 7, 50, 195,
577
- 196, 197, 189, 196, 196, 192, 193, 194,
578
- 7, 50, 198, 195, 198, 196, 197, 198,
579
- 198, 198, 189, 242, 242, 244, 245, 247,
580
- 7, 103, 198, 195, 198, 242, 243, 198,
581
- 198, 198, 189, 248, 248, 84, 247, 199,
582
- 251, 198, 195, 198, 248, 249, 198, 198,
583
- 198, 189, 92, 92, 84, 101, 7, 103,
584
- 100, 97, 100, 92, 93, 100, 100, 100,
585
- 91, 144, 144, 84, 147, 7, 148, 149,
586
- 146, 97, 146, 144, 145, 146, 146, 146,
587
- 91, 98, 98, 84, 101, 7, 102, 103,
588
- 100, 97, 100, 98, 99, 100, 100, 100,
589
- 91, 92, 92, 84, 95, 7, 96, 97,
590
- 92, 93, 91, 92, 92, 94, 95, 7,
591
- 96, 97, 92, 93, 91, 242, 242, 244,
592
- 245, 246, 7, 96, 195, 242, 243, 189,
593
- 258, 258, 263, 94, 256, 215, 261, 211,
594
- 258, 259, 205, 105, 105, 80, 94, 108,
595
- 9, 109, 110, 105, 106, 104, 373, 10,
596
- 11, 55, 57, 54, 12, 54, 373, 54,
597
- 54, 54, 9, 10, 11, 12, 9, 370,
598
- 3, 31, 33, 30, 4, 30, 370, 30,
599
- 30, 30, 2, 3, 4, 2, 10, 4,
600
- 2, 117, 3, 119, 120, 121, 118, 4,
601
- 118, 117, 118, 118, 118, 2, 29, 3,
602
- 31, 32, 33, 30, 4, 30, 29, 30,
603
- 30, 30, 2, 3, 28, 4, 2, 167,
604
- 167, 169, 170, 171, 2, 33, 172, 167,
605
- 168, 166, 78, 78, 84, 81, 2, 82,
606
- 83, 78, 79, 77, 78, 78, 84, 88,
607
- 2, 90, 87, 83, 87, 78, 79, 87,
608
- 87, 87, 77, 138, 138, 84, 141, 2,
609
- 142, 143, 140, 83, 140, 138, 139, 140,
610
- 140, 140, 77, 85, 85, 84, 88, 2,
611
- 89, 90, 87, 83, 87, 85, 86, 87,
612
- 87, 87, 77, 78, 78, 84, 81, 2,
613
- 82, 83, 78, 79, 77, 78, 78, 80,
614
- 81, 2, 82, 83, 78, 79, 77, 232,
615
- 232, 234, 235, 236, 2, 82, 172, 232,
616
- 233, 166, 173, 173, 169, 170, 171, 2,
617
- 33, 175, 172, 175, 173, 174, 175, 175,
618
- 175, 166, 232, 232, 234, 235, 237, 2,
619
- 90, 175, 172, 175, 232, 233, 175, 175,
620
- 175, 166, 258, 258, 80, 260, 256, 215,
621
- 261, 211, 258, 259, 205, 105, 105, 80,
622
- 94, 114, 9, 116, 113, 110, 113, 105,
623
- 106, 113, 113, 113, 104, 150, 150, 80,
624
- 94, 153, 9, 154, 155, 152, 110, 152,
625
- 150, 151, 152, 152, 152, 104, 53, 10,
626
- 11, 55, 56, 57, 54, 12, 54, 53,
627
- 54, 54, 54, 9, 127, 10, 11, 129,
628
- 130, 131, 128, 12, 128, 127, 128, 128,
629
- 128, 9, 10, 11, 52, 12, 9, 51,
630
- 51, 12, 9, 206, 206, 208, 209, 210,
631
- 9, 57, 211, 206, 207, 205, 212, 212,
632
- 208, 209, 210, 9, 57, 211, 212, 213,
633
- 205, 212, 212, 208, 209, 210, 9, 57,
634
- 214, 211, 214, 212, 213, 214, 214, 214,
635
- 205, 252, 252, 254, 255, 257, 9, 116,
636
- 214, 211, 214, 252, 253, 214, 214, 214,
637
- 205, 258, 258, 80, 260, 257, 215, 262,
638
- 214, 211, 214, 258, 259, 214, 214, 214,
639
- 205, 105, 105, 80, 94, 108, 9, 109,
640
- 110, 105, 106, 104, 105, 105, 107, 107,
641
- 108, 9, 109, 110, 105, 106, 104, 258,
642
- 258, 263, 94, 257, 215, 262, 214, 211,
643
- 214, 258, 259, 214, 214, 214, 205, 218,
644
- 10, 216, 220, 221, 219, 217, 219, 218,
645
- 219, 219, 219, 215, 218, 225, 11, 220,
646
- 221, 219, 217, 219, 218, 219, 219, 219,
647
- 215, 252, 252, 254, 255, 256, 9, 109,
648
- 211, 252, 253, 205, 111, 111, 80, 94,
649
- 114, 9, 115, 116, 113, 110, 113, 111,
650
- 112, 113, 113, 113, 104, 238, 238, 84,
651
- 237, 176, 241, 175, 172, 175, 238, 239,
652
- 175, 175, 175, 166, 10, 216, 217, 215,
653
- 178, 3, 180, 181, 179, 177, 179, 178,
654
- 179, 179, 179, 176, 173, 173, 169, 170,
655
- 171, 2, 33, 172, 173, 174, 166, 201,
656
- 3, 203, 204, 202, 200, 202, 201, 202,
657
- 202, 202, 199, 225, 11, 217, 215, 238,
658
- 238, 84, 236, 176, 240, 172, 238, 239,
659
- 166, 3, 200, 199, 3, 177, 176, 163,
660
- 163, 159, 160, 161, 69, 162, 163, 164,
661
- 156, 339, 339, 340, 339, 339, 296, 15,
662
- 357, 357, 15, 357, 357, 357, 357, 296,
663
- 15, 357, 357, 408, 15, 357, 357, 357,
664
- 357, 296, 15, 357, 357, 404, 15, 357,
665
- 357, 357, 357, 296, 16, 357, 357, 16,
666
- 357, 357, 357, 357, 296, 287, 264, 294,
667
- 264, 396, 264, 387, 264, 393, 264, 268,
668
- 264, 268, 265, 268, 264, 265, 266, 267,
669
- 265, 264, 282, 282, 282, 282, 282, 264,
670
- 275, 276, 276, 276, 276, 276, 264, 269,
671
- 270, 271, 269, 264, 269, 270, 271, 272,
672
- 273, 269, 264, 270, 264, 388, 264, 285,
673
- 264, 394, 264, 385, 264, 289, 264, 390,
674
- 264, 288, 264, 288, 374, 288, 264, 374,
675
- 375, 376, 374, 264, 283, 283, 264, 277,
676
- 278, 278, 278, 278, 278, 264, 274, 270,
677
- 271, 274, 264, 274, 270, 271, 273, 274,
678
- 264, 295, 264, 384, 264, 389, 264, 286,
679
- 264, 284, 264, 290, 264, 395, 264, 391,
680
- 264, 380, 264, 380, 377, 380, 264, 377,
681
- 378, 379, 377, 264, 291, 292, 264, 293,
682
- 264, 279, 264, 381, 270, 271, 381, 264,
683
- 386, 264, 293, 264, 405, 406, 264, 392,
684
- 264, 279, 264, 407, 264, 392, 264, 383,
685
- 383, 264, 277, 281, 281, 281, 281, 281,
686
- 264, 382, 382, 382, 382, 382, 264, 275,
687
- 280, 280, 280, 280, 280, 264, 415, 414,
688
- 422, 421, 24, 25, 23, 19, 20, 21,
689
- 22, 21, 21, 21, 18, 6, 5, 1,
690
- 0, 6, 13, 3, 8, 7, 3, 4,
691
- 2, 10, 11, 12, 9, 15, 15, 14,
692
- 16, 17, 16, 14, 412, 413, 411, 410,
693
- 409, 419, 420, 418, 417, 416, 426, 424,
694
- 427, 425, 424, 423, 0
695
- };
696
-
697
- static final short[] _hpricot_scan_trans_targs_wi = {
698
- 26, 27, 101, 69, 102, 29, 25, 80,
699
- 81, 99, 100, 79, 122, 24, 204, 212,
700
- 213, 150, 204, 0, 59, 62, 145, 204,
701
- 204, 205, 41, 207, 210, 104, 103, 105,
702
- 106, 210, 40, 41, 42, 36, 37, 46,
703
- 206, 47, 32, 35, 34, 209, 83, 82,
704
- 84, 85, 209, 98, 211, 119, 120, 121,
705
- 123, 211, 44, 45, 43, 208, 38, 39,
706
- 43, 68, 69, 70, 73, 204, 204, 65,
707
- 72, 71, 73, 74, 204, 107, 100, 108,
708
- 108, 111, 210, 112, 70, 104, 110, 109,
709
- 111, 113, 210, 78, 79, 90, 90, 93,
710
- 209, 94, 83, 92, 91, 93, 95, 209,
711
- 97, 98, 117, 117, 128, 211, 129, 119,
712
- 134, 118, 128, 133, 211, 104, 103, 105,
713
- 106, 210, 83, 82, 84, 85, 209, 119,
714
- 120, 121, 123, 211, 65, 72, 71, 73,
715
- 74, 204, 104, 110, 109, 111, 113, 210,
716
- 83, 92, 91, 93, 95, 209, 119, 134,
717
- 118, 128, 133, 211, 68, 144, 74, 142,
718
- 143, 73, 204, 75, 76, 71, 107, 138,
719
- 113, 136, 137, 111, 112, 114, 115, 109,
720
- 101, 102, 100, 103, 105, 210, 29, 39,
721
- 206, 40, 35, 36, 47, 78, 86, 95,
722
- 139, 140, 93, 94, 87, 88, 91, 80,
723
- 81, 79, 82, 84, 209, 97, 124, 133,
724
- 131, 132, 128, 129, 125, 126, 118, 99,
725
- 79, 122, 98, 120, 121, 211, 24, 38,
726
- 43, 100, 75, 76, 77, 141, 73, 73,
727
- 114, 115, 116, 135, 111, 111, 100, 108,
728
- 210, 210, 87, 88, 89, 96, 93, 93,
729
- 79, 90, 209, 209, 125, 126, 127, 130,
730
- 128, 128, 98, 117, 90, 211, 211, 108,
731
- 204, 157, 158, 200, 156, 161, 204, 162,
732
- 163, 176, 175, 160, 159, 174, 173, 190,
733
- 201, 199, 159, 173, 181, 165, 180, 151,
734
- 170, 168, 182, 188, 191, 189, 152, 177,
735
- 204, 33, 22, 31, 23, 34, 204, 32,
736
- 18, 19, 30, 28, 9, 10, 11, 12,
737
- 48, 61, 204, 63, 64, 66, 204, 20,
738
- 21, 20, 31, 32, 63, 62, 66, 204,
739
- 11, 10, 204, 26, 61, 60, 204, 1,
740
- 2, 53, 60, 146, 147, 56, 14, 17,
741
- 55, 52, 16, 15, 21, 3, 7, 50,
742
- 51, 13, 6, 204, 204, 146, 25, 65,
743
- 64, 66, 67, 69, 65, 64, 66, 67,
744
- 204, 204, 100, 39, 79, 98, 171, 172,
745
- 198, 186, 187, 193, 185, 190, 201, 199,
746
- 178, 167, 192, 154, 164, 179, 169, 184,
747
- 195, 155, 166, 183, 153, 58, 54, 4,
748
- 8, 5, 57, 49, 149, 194, 196, 197,
749
- 148, 214, 202, 214, 214, 215, 214, 214,
750
- 216, 203, 216, 216, 217, 216, 216, 218,
751
- 218, 218, 218, 219
752
- };
753
-
754
- static final short[] _hpricot_scan_trans_actions_wi = {
755
- 0, 0, 0, 7, 0, 0, 21, 0,
756
- 0, 0, 7, 7, 0, 0, 65, 0,
757
- 31, 0, 67, 0, 0, 1, 0, 63,
758
- 132, 178, 0, 144, 147, 0, 174, 23,
759
- 0, 186, 0, 21, 0, 0, 0, 21,
760
- 144, 0, 111, 0, 111, 147, 0, 174,
761
- 23, 0, 186, 7, 147, 0, 174, 23,
762
- 0, 186, 0, 0, 0, 144, 0, 21,
763
- 21, 0, 9, 9, 102, 73, 162, 9,
764
- 9, 174, 117, 0, 170, 0, 9, 9,
765
- 7, 102, 205, 0, 7, 9, 9, 174,
766
- 117, 0, 215, 0, 9, 9, 7, 102,
767
- 205, 0, 9, 9, 174, 117, 0, 215,
768
- 0, 9, 9, 7, 102, 205, 0, 9,
769
- 9, 174, 117, 0, 215, 11, 0, 108,
770
- 11, 210, 11, 0, 108, 11, 210, 11,
771
- 0, 108, 11, 210, 105, 105, 0, 158,
772
- 11, 195, 105, 105, 0, 158, 11, 232,
773
- 105, 105, 0, 158, 11, 232, 105, 105,
774
- 0, 158, 11, 232, 3, 3, 3, 0,
775
- 0, 87, 120, 3, 3, 190, 3, 3,
776
- 3, 0, 7, 87, 3, 3, 3, 190,
777
- 3, 3, 3, 190, 87, 200, 3, 3,
778
- 182, 3, 3, 3, 3, 3, 3, 3,
779
- 7, 0, 87, 3, 3, 3, 190, 3,
780
- 3, 3, 190, 87, 200, 3, 3, 3,
781
- 7, 7, 87, 3, 3, 3, 190, 3,
782
- 75, 3, 3, 190, 87, 200, 3, 3,
783
- 84, 99, 78, 78, 0, 0, 150, 154,
784
- 78, 78, 0, 7, 150, 154, 78, 78,
785
- 220, 226, 78, 78, 7, 0, 150, 154,
786
- 78, 78, 220, 226, 78, 78, 7, 7,
787
- 150, 154, 78, 78, 75, 220, 226, 99,
788
- 69, 0, 0, 0, 0, 0, 49, 0,
789
- 0, 0, 0, 13, 0, 15, 0, 17,
790
- 0, 0, 3, 3, 0, 0, 0, 0,
791
- 0, 0, 0, 3, 3, 0, 0, 0,
792
- 71, 0, 0, 0, 0, 19, 51, 19,
793
- 0, 0, 0, 0, 0, 1, 0, 0,
794
- 0, 0, 55, 0, 114, 0, 53, 0,
795
- 19, 3, 3, 81, 5, 0, 5, 93,
796
- 5, 0, 90, 5, 5, 0, 96, 0,
797
- 0, 0, 1, 25, 25, 0, 0, 0,
798
- 0, 0, 0, 0, 0, 0, 0, 0,
799
- 0, 0, 0, 61, 59, 0, 0, 0,
800
- 174, 23, 0, 0, 11, 0, 108, 11,
801
- 166, 57, 0, 0, 0, 0, 0, 0,
802
- 0, 0, 0, 0, 0, 0, 3, 3,
803
- 0, 0, 0, 0, 0, 0, 0, 0,
804
- 0, 0, 0, 0, 0, 0, 0, 0,
805
- 0, 0, 0, 0, 0, 3, 3, 0,
806
- 0, 35, 0, 33, 123, 31, 37, 135,
807
- 41, 0, 39, 126, 31, 43, 138, 47,
808
- 141, 45, 129, 0
809
- };
810
-
811
- static final short[] _hpricot_scan_to_state_actions = {
812
- 0, 0, 0, 0, 0, 0, 0, 0,
813
- 0, 0, 0, 0, 0, 0, 0, 0,
814
- 0, 0, 0, 0, 0, 0, 0, 0,
815
- 0, 0, 0, 0, 0, 0, 0, 0,
816
- 0, 0, 0, 0, 0, 0, 0, 0,
817
- 0, 0, 0, 0, 0, 0, 0, 0,
818
- 0, 0, 0, 0, 0, 0, 0, 0,
819
- 0, 0, 0, 0, 0, 0, 0, 0,
820
- 0, 0, 0, 0, 0, 0, 0, 0,
821
- 0, 0, 0, 0, 0, 0, 0, 0,
822
- 0, 0, 0, 0, 0, 0, 0, 0,
823
- 0, 0, 0, 0, 0, 0, 0, 0,
824
- 0, 0, 0, 0, 0, 0, 0, 0,
825
- 0, 0, 0, 0, 0, 0, 0, 0,
826
- 0, 0, 0, 0, 0, 0, 0, 0,
827
- 0, 0, 0, 0, 0, 0, 0, 0,
828
- 0, 0, 0, 0, 0, 0, 0, 0,
829
- 0, 0, 0, 0, 0, 0, 0, 0,
830
- 0, 0, 0, 0, 0, 0, 0, 0,
831
- 0, 0, 0, 0, 0, 0, 0, 0,
832
- 0, 0, 0, 0, 0, 0, 0, 0,
833
- 0, 0, 0, 0, 0, 0, 0, 0,
834
- 0, 0, 0, 0, 0, 0, 0, 0,
835
- 0, 0, 0, 0, 0, 0, 0, 0,
836
- 0, 0, 0, 0, 0, 0, 0, 0,
837
- 0, 0, 0, 0, 27, 0, 0, 0,
838
- 0, 0, 0, 0, 0, 0, 27, 0,
839
- 27, 0, 27, 0
840
- };
841
-
842
- static final short[] _hpricot_scan_from_state_actions = {
843
- 0, 0, 0, 0, 0, 0, 0, 0,
844
- 0, 0, 0, 0, 0, 0, 0, 0,
845
- 0, 0, 0, 0, 0, 0, 0, 0,
846
- 0, 0, 0, 0, 0, 0, 0, 0,
847
- 0, 0, 0, 0, 0, 0, 0, 0,
848
- 0, 0, 0, 0, 0, 0, 0, 0,
849
- 0, 0, 0, 0, 0, 0, 0, 0,
850
- 0, 0, 0, 0, 0, 0, 0, 0,
851
- 0, 0, 0, 0, 0, 0, 0, 0,
852
- 0, 0, 0, 0, 0, 0, 0, 0,
853
- 0, 0, 0, 0, 0, 0, 0, 0,
854
- 0, 0, 0, 0, 0, 0, 0, 0,
855
- 0, 0, 0, 0, 0, 0, 0, 0,
856
- 0, 0, 0, 0, 0, 0, 0, 0,
857
- 0, 0, 0, 0, 0, 0, 0, 0,
858
- 0, 0, 0, 0, 0, 0, 0, 0,
859
- 0, 0, 0, 0, 0, 0, 0, 0,
860
- 0, 0, 0, 0, 0, 0, 0, 0,
861
- 0, 0, 0, 0, 0, 0, 0, 0,
862
- 0, 0, 0, 0, 0, 0, 0, 0,
863
- 0, 0, 0, 0, 0, 0, 0, 0,
864
- 0, 0, 0, 0, 0, 0, 0, 0,
865
- 0, 0, 0, 0, 0, 0, 0, 0,
866
- 0, 0, 0, 0, 0, 0, 0, 0,
867
- 0, 0, 0, 0, 0, 0, 0, 0,
868
- 0, 0, 0, 0, 29, 0, 0, 0,
869
- 0, 0, 0, 0, 0, 0, 29, 0,
870
- 29, 0, 29, 0
871
- };
225
+ private static short[] create__hpricot_scan_key_offsets( )
226
+ {
227
+ short[] r = new short[220];
228
+ init__hpricot_scan_key_offsets_0( r );
229
+ return r;
230
+ }
872
231
 
873
- static final int hpricot_scan_start = 204;
232
+ private static final short _hpricot_scan_key_offsets[] = create__hpricot_scan_key_offsets();
233
+
234
+
235
+ private static void init__hpricot_scan_trans_keys_0( char[] r )
236
+ {
237
+ r[0]=45; r[1]=68; r[2]=91; r[3]=45; r[4]=79; r[5]=67; r[6]=84; r[7]=89;
238
+ r[8]=80; r[9]=69; r[10]=32; r[11]=9; r[12]=13; r[13]=32; r[14]=58; r[15]=95;
239
+ r[16]=9; r[17]=13; r[18]=65; r[19]=90; r[20]=97; r[21]=122; r[22]=32; r[23]=62;
240
+ r[24]=63; r[25]=91; r[26]=95; r[27]=9; r[28]=13; r[29]=45; r[30]=46; r[31]=48;
241
+ r[32]=58; r[33]=65; r[34]=90; r[35]=97; r[36]=122; r[37]=32; r[38]=62; r[39]=80;
242
+ r[40]=83; r[41]=91; r[42]=9; r[43]=13; r[44]=85; r[45]=66; r[46]=76; r[47]=73;
243
+ r[48]=67; r[49]=32; r[50]=9; r[51]=13; r[52]=32; r[53]=34; r[54]=39; r[55]=9;
244
+ r[56]=13; r[57]=9; r[58]=34; r[59]=61; r[60]=95; r[61]=32; r[62]=37; r[63]=39;
245
+ r[64]=59; r[65]=63; r[66]=90; r[67]=97; r[68]=122; r[69]=9; r[70]=34; r[71]=61;
246
+ r[72]=95; r[73]=32; r[74]=37; r[75]=39; r[76]=59; r[77]=63; r[78]=90; r[79]=97;
247
+ r[80]=122; r[81]=32; r[82]=62; r[83]=91; r[84]=9; r[85]=13; r[86]=32; r[87]=34;
248
+ r[88]=39; r[89]=62; r[90]=91; r[91]=9; r[92]=13; r[93]=34; r[94]=34; r[95]=32;
249
+ r[96]=62; r[97]=91; r[98]=9; r[99]=13; r[100]=93; r[101]=32; r[102]=62; r[103]=9;
250
+ r[104]=13; r[105]=39; r[106]=39; r[107]=9; r[108]=39; r[109]=61; r[110]=95; r[111]=32;
251
+ r[112]=33; r[113]=35; r[114]=37; r[115]=40; r[116]=59; r[117]=63; r[118]=90; r[119]=97;
252
+ r[120]=122; r[121]=9; r[122]=39; r[123]=61; r[124]=95; r[125]=32; r[126]=33; r[127]=35;
253
+ r[128]=37; r[129]=40; r[130]=59; r[131]=63; r[132]=90; r[133]=97; r[134]=122; r[135]=9;
254
+ r[136]=32; r[137]=33; r[138]=39; r[139]=62; r[140]=91; r[141]=95; r[142]=10; r[143]=13;
255
+ r[144]=35; r[145]=37; r[146]=40; r[147]=59; r[148]=61; r[149]=90; r[150]=97; r[151]=122;
256
+ r[152]=9; r[153]=32; r[154]=34; r[155]=39; r[156]=62; r[157]=91; r[158]=95; r[159]=10;
257
+ r[160]=13; r[161]=33; r[162]=37; r[163]=40; r[164]=59; r[165]=61; r[166]=90; r[167]=97;
258
+ r[168]=122; r[169]=9; r[170]=32; r[171]=33; r[172]=39; r[173]=62; r[174]=91; r[175]=95;
259
+ r[176]=10; r[177]=13; r[178]=35; r[179]=37; r[180]=40; r[181]=59; r[182]=61; r[183]=90;
260
+ r[184]=97; r[185]=122; r[186]=9; r[187]=32; r[188]=34; r[189]=39; r[190]=62; r[191]=91;
261
+ r[192]=95; r[193]=10; r[194]=13; r[195]=33; r[196]=37; r[197]=40; r[198]=59; r[199]=61;
262
+ r[200]=90; r[201]=97; r[202]=122; r[203]=32; r[204]=34; r[205]=39; r[206]=62; r[207]=91;
263
+ r[208]=9; r[209]=13; r[210]=34; r[211]=39; r[212]=34; r[213]=39; r[214]=32; r[215]=39;
264
+ r[216]=62; r[217]=91; r[218]=9; r[219]=13; r[220]=39; r[221]=93; r[222]=32; r[223]=62;
265
+ r[224]=93; r[225]=9; r[226]=13; r[227]=32; r[228]=39; r[229]=62; r[230]=9; r[231]=13;
266
+ r[232]=32; r[233]=34; r[234]=62; r[235]=91; r[236]=9; r[237]=13; r[238]=34; r[239]=93;
267
+ r[240]=32; r[241]=34; r[242]=62; r[243]=9; r[244]=13; r[245]=32; r[246]=39; r[247]=62;
268
+ r[248]=91; r[249]=9; r[250]=13; r[251]=9; r[252]=39; r[253]=61; r[254]=95; r[255]=32;
269
+ r[256]=33; r[257]=35; r[258]=37; r[259]=40; r[260]=59; r[261]=63; r[262]=90; r[263]=97;
270
+ r[264]=122; r[265]=89; r[266]=83; r[267]=84; r[268]=69; r[269]=77; r[270]=67; r[271]=68;
271
+ r[272]=65; r[273]=84; r[274]=65; r[275]=91; r[276]=58; r[277]=95; r[278]=65; r[279]=90;
272
+ r[280]=97; r[281]=122; r[282]=32; r[283]=62; r[284]=63; r[285]=95; r[286]=9; r[287]=13;
273
+ r[288]=45; r[289]=46; r[290]=48; r[291]=58; r[292]=65; r[293]=90; r[294]=97; r[295]=122;
274
+ r[296]=32; r[297]=62; r[298]=9; r[299]=13; r[300]=32; r[301]=47; r[302]=62; r[303]=63;
275
+ r[304]=95; r[305]=9; r[306]=13; r[307]=45; r[308]=58; r[309]=65; r[310]=90; r[311]=97;
276
+ r[312]=122; r[313]=32; r[314]=47; r[315]=62; r[316]=63; r[317]=95; r[318]=9; r[319]=13;
277
+ r[320]=45; r[321]=58; r[322]=65; r[323]=90; r[324]=97; r[325]=122; r[326]=32; r[327]=47;
278
+ r[328]=61; r[329]=62; r[330]=63; r[331]=95; r[332]=9; r[333]=13; r[334]=45; r[335]=58;
279
+ r[336]=65; r[337]=90; r[338]=97; r[339]=122; r[340]=32; r[341]=47; r[342]=61; r[343]=62;
280
+ r[344]=63; r[345]=95; r[346]=9; r[347]=13; r[348]=45; r[349]=58; r[350]=65; r[351]=90;
281
+ r[352]=97; r[353]=122; r[354]=62; r[355]=13; r[356]=32; r[357]=34; r[358]=39; r[359]=47;
282
+ r[360]=60; r[361]=62; r[362]=9; r[363]=10; r[364]=11; r[365]=12; r[366]=13; r[367]=32;
283
+ r[368]=47; r[369]=60; r[370]=62; r[371]=9; r[372]=10; r[373]=11; r[374]=12; r[375]=32;
284
+ r[376]=47; r[377]=62; r[378]=63; r[379]=95; r[380]=9; r[381]=13; r[382]=45; r[383]=58;
285
+ r[384]=65; r[385]=90; r[386]=97; r[387]=122; r[388]=13; r[389]=32; r[390]=47; r[391]=60;
286
+ r[392]=62; r[393]=63; r[394]=95; r[395]=9; r[396]=10; r[397]=11; r[398]=12; r[399]=45;
287
+ r[400]=58; r[401]=65; r[402]=90; r[403]=97; r[404]=122; r[405]=13; r[406]=32; r[407]=47;
288
+ r[408]=60; r[409]=61; r[410]=62; r[411]=63; r[412]=95; r[413]=9; r[414]=10; r[415]=11;
289
+ r[416]=12; r[417]=45; r[418]=58; r[419]=65; r[420]=90; r[421]=97; r[422]=122; r[423]=13;
290
+ r[424]=32; r[425]=47; r[426]=60; r[427]=61; r[428]=62; r[429]=63; r[430]=95; r[431]=9;
291
+ r[432]=10; r[433]=11; r[434]=12; r[435]=45; r[436]=58; r[437]=65; r[438]=90; r[439]=97;
292
+ r[440]=122; r[441]=13; r[442]=32; r[443]=47; r[444]=60; r[445]=62; r[446]=9; r[447]=10;
293
+ r[448]=11; r[449]=12; r[450]=13; r[451]=32; r[452]=34; r[453]=39; r[454]=47; r[455]=60;
294
+ r[456]=62; r[457]=9; r[458]=10; r[459]=11; r[460]=12; r[461]=13; r[462]=32; r[463]=34;
295
+ r[464]=39; r[465]=47; r[466]=60; r[467]=62; r[468]=63; r[469]=95; r[470]=9; r[471]=10;
296
+ r[472]=11; r[473]=12; r[474]=45; r[475]=58; r[476]=65; r[477]=90; r[478]=97; r[479]=122;
297
+ r[480]=13; r[481]=32; r[482]=34; r[483]=39; r[484]=47; r[485]=60; r[486]=62; r[487]=63;
298
+ r[488]=95; r[489]=9; r[490]=10; r[491]=11; r[492]=12; r[493]=45; r[494]=58; r[495]=65;
299
+ r[496]=90; r[497]=97; r[498]=122; r[499]=13; r[500]=32; r[501]=34; r[502]=47; r[503]=60;
300
+ r[504]=62; r[505]=92; r[506]=9; r[507]=10; r[508]=11; r[509]=12; r[510]=13; r[511]=32;
301
+ r[512]=34; r[513]=47; r[514]=60; r[515]=62; r[516]=92; r[517]=9; r[518]=10; r[519]=11;
302
+ r[520]=12; r[521]=32; r[522]=34; r[523]=47; r[524]=62; r[525]=63; r[526]=92; r[527]=95;
303
+ r[528]=9; r[529]=13; r[530]=45; r[531]=58; r[532]=65; r[533]=90; r[534]=97; r[535]=122;
304
+ r[536]=34; r[537]=92; r[538]=34; r[539]=92; r[540]=32; r[541]=34; r[542]=47; r[543]=61;
305
+ r[544]=62; r[545]=63; r[546]=92; r[547]=95; r[548]=9; r[549]=13; r[550]=45; r[551]=58;
306
+ r[552]=65; r[553]=90; r[554]=97; r[555]=122; r[556]=32; r[557]=34; r[558]=47; r[559]=61;
307
+ r[560]=62; r[561]=63; r[562]=92; r[563]=95; r[564]=9; r[565]=13; r[566]=45; r[567]=58;
308
+ r[568]=65; r[569]=90; r[570]=97; r[571]=122; r[572]=34; r[573]=62; r[574]=92; r[575]=13;
309
+ r[576]=32; r[577]=34; r[578]=39; r[579]=47; r[580]=60; r[581]=62; r[582]=92; r[583]=9;
310
+ r[584]=10; r[585]=11; r[586]=12; r[587]=13; r[588]=32; r[589]=34; r[590]=39; r[591]=47;
311
+ r[592]=60; r[593]=62; r[594]=92; r[595]=9; r[596]=10; r[597]=11; r[598]=12; r[599]=13;
312
+ r[600]=32; r[601]=34; r[602]=39; r[603]=47; r[604]=60; r[605]=62; r[606]=63; r[607]=92;
313
+ r[608]=95; r[609]=9; r[610]=10; r[611]=11; r[612]=12; r[613]=45; r[614]=58; r[615]=65;
314
+ r[616]=90; r[617]=97; r[618]=122; r[619]=13; r[620]=32; r[621]=34; r[622]=39; r[623]=47;
315
+ r[624]=60; r[625]=62; r[626]=63; r[627]=92; r[628]=95; r[629]=9; r[630]=10; r[631]=11;
316
+ r[632]=12; r[633]=45; r[634]=58; r[635]=65; r[636]=90; r[637]=97; r[638]=122; r[639]=13;
317
+ r[640]=32; r[641]=34; r[642]=47; r[643]=60; r[644]=62; r[645]=63; r[646]=92; r[647]=95;
318
+ r[648]=9; r[649]=10; r[650]=11; r[651]=12; r[652]=45; r[653]=58; r[654]=65; r[655]=90;
319
+ r[656]=97; r[657]=122; r[658]=13; r[659]=32; r[660]=34; r[661]=47; r[662]=60; r[663]=62;
320
+ r[664]=63; r[665]=92; r[666]=95; r[667]=9; r[668]=10; r[669]=11; r[670]=12; r[671]=45;
321
+ r[672]=58; r[673]=65; r[674]=90; r[675]=97; r[676]=122; r[677]=13; r[678]=32; r[679]=34;
322
+ r[680]=47; r[681]=60; r[682]=61; r[683]=62; r[684]=63; r[685]=92; r[686]=95; r[687]=9;
323
+ r[688]=10; r[689]=11; r[690]=12; r[691]=45; r[692]=58; r[693]=65; r[694]=90; r[695]=97;
324
+ r[696]=122; r[697]=13; r[698]=32; r[699]=34; r[700]=47; r[701]=60; r[702]=61; r[703]=62;
325
+ r[704]=63; r[705]=92; r[706]=95; r[707]=9; r[708]=10; r[709]=11; r[710]=12; r[711]=45;
326
+ r[712]=58; r[713]=65; r[714]=90; r[715]=97; r[716]=122; r[717]=13; r[718]=32; r[719]=34;
327
+ r[720]=47; r[721]=60; r[722]=62; r[723]=92; r[724]=9; r[725]=10; r[726]=11; r[727]=12;
328
+ r[728]=13; r[729]=32; r[730]=34; r[731]=47; r[732]=60; r[733]=62; r[734]=92; r[735]=9;
329
+ r[736]=10; r[737]=11; r[738]=12; r[739]=13; r[740]=32; r[741]=34; r[742]=39; r[743]=47;
330
+ r[744]=60; r[745]=62; r[746]=92; r[747]=9; r[748]=10; r[749]=11; r[750]=12; r[751]=13;
331
+ r[752]=32; r[753]=34; r[754]=39; r[755]=47; r[756]=60; r[757]=62; r[758]=92; r[759]=9;
332
+ r[760]=10; r[761]=11; r[762]=12; r[763]=13; r[764]=32; r[765]=34; r[766]=39; r[767]=47;
333
+ r[768]=60; r[769]=62; r[770]=92; r[771]=9; r[772]=10; r[773]=11; r[774]=12; r[775]=32;
334
+ r[776]=34; r[777]=39; r[778]=47; r[779]=62; r[780]=63; r[781]=92; r[782]=95; r[783]=9;
335
+ r[784]=13; r[785]=45; r[786]=58; r[787]=65; r[788]=90; r[789]=97; r[790]=122; r[791]=34;
336
+ r[792]=39; r[793]=92; r[794]=32; r[795]=39; r[796]=47; r[797]=62; r[798]=63; r[799]=92;
337
+ r[800]=95; r[801]=9; r[802]=13; r[803]=45; r[804]=58; r[805]=65; r[806]=90; r[807]=97;
338
+ r[808]=122; r[809]=39; r[810]=92; r[811]=39; r[812]=92; r[813]=32; r[814]=39; r[815]=47;
339
+ r[816]=61; r[817]=62; r[818]=63; r[819]=92; r[820]=95; r[821]=9; r[822]=13; r[823]=45;
340
+ r[824]=58; r[825]=65; r[826]=90; r[827]=97; r[828]=122; r[829]=32; r[830]=39; r[831]=47;
341
+ r[832]=61; r[833]=62; r[834]=63; r[835]=92; r[836]=95; r[837]=9; r[838]=13; r[839]=45;
342
+ r[840]=58; r[841]=65; r[842]=90; r[843]=97; r[844]=122; r[845]=39; r[846]=62; r[847]=92;
343
+ r[848]=13; r[849]=32; r[850]=34; r[851]=39; r[852]=47; r[853]=60; r[854]=62; r[855]=92;
344
+ r[856]=9; r[857]=10; r[858]=11; r[859]=12; r[860]=13; r[861]=32; r[862]=39; r[863]=47;
345
+ r[864]=60; r[865]=62; r[866]=92; r[867]=9; r[868]=10; r[869]=11; r[870]=12; r[871]=13;
346
+ r[872]=32; r[873]=39; r[874]=47; r[875]=60; r[876]=62; r[877]=63; r[878]=92; r[879]=95;
347
+ r[880]=9; r[881]=10; r[882]=11; r[883]=12; r[884]=45; r[885]=58; r[886]=65; r[887]=90;
348
+ r[888]=97; r[889]=122; r[890]=13; r[891]=32; r[892]=39; r[893]=47; r[894]=60; r[895]=61;
349
+ r[896]=62; r[897]=63; r[898]=92; r[899]=95; r[900]=9; r[901]=10; r[902]=11; r[903]=12;
350
+ r[904]=45; r[905]=58; r[906]=65; r[907]=90; r[908]=97; r[909]=122; r[910]=13; r[911]=32;
351
+ r[912]=39; r[913]=47; r[914]=60; r[915]=61; r[916]=62; r[917]=63; r[918]=92; r[919]=95;
352
+ r[920]=9; r[921]=10; r[922]=11; r[923]=12; r[924]=45; r[925]=58; r[926]=65; r[927]=90;
353
+ r[928]=97; r[929]=122; r[930]=13; r[931]=32; r[932]=39; r[933]=47; r[934]=60; r[935]=62;
354
+ r[936]=92; r[937]=9; r[938]=10; r[939]=11; r[940]=12; r[941]=13; r[942]=32; r[943]=39;
355
+ r[944]=47; r[945]=60; r[946]=62; r[947]=92; r[948]=9; r[949]=10; r[950]=11; r[951]=12;
356
+ r[952]=13; r[953]=32; r[954]=34; r[955]=39; r[956]=47; r[957]=60; r[958]=62; r[959]=92;
357
+ r[960]=9; r[961]=10; r[962]=11; r[963]=12; r[964]=13; r[965]=32; r[966]=34; r[967]=39;
358
+ r[968]=47; r[969]=60; r[970]=62; r[971]=63; r[972]=92; r[973]=95; r[974]=9; r[975]=10;
359
+ r[976]=11; r[977]=12; r[978]=45; r[979]=58; r[980]=65; r[981]=90; r[982]=97; r[983]=122;
360
+ r[984]=13; r[985]=32; r[986]=34; r[987]=39; r[988]=47; r[989]=60; r[990]=62; r[991]=63;
361
+ r[992]=92; r[993]=95; r[994]=9; r[995]=10; r[996]=11; r[997]=12; r[998]=45; r[999]=58;
362
+ r[1000]=65; r[1001]=90; r[1002]=97; r[1003]=122; r[1004]=13; r[1005]=32; r[1006]=34; r[1007]=39;
363
+ r[1008]=47; r[1009]=60; r[1010]=62; r[1011]=92; r[1012]=9; r[1013]=10; r[1014]=11; r[1015]=12;
364
+ r[1016]=13; r[1017]=32; r[1018]=34; r[1019]=39; r[1020]=47; r[1021]=60; r[1022]=62; r[1023]=63;
365
+ r[1024]=92; r[1025]=95; r[1026]=9; r[1027]=10; r[1028]=11; r[1029]=12; r[1030]=45; r[1031]=58;
366
+ r[1032]=65; r[1033]=90; r[1034]=97; r[1035]=122; r[1036]=13; r[1037]=32; r[1038]=34; r[1039]=39;
367
+ r[1040]=47; r[1041]=60; r[1042]=61; r[1043]=62; r[1044]=63; r[1045]=92; r[1046]=95; r[1047]=9;
368
+ r[1048]=10; r[1049]=11; r[1050]=12; r[1051]=45; r[1052]=58; r[1053]=65; r[1054]=90; r[1055]=97;
369
+ r[1056]=122; r[1057]=32; r[1058]=34; r[1059]=39; r[1060]=47; r[1061]=61; r[1062]=62; r[1063]=63;
370
+ r[1064]=92; r[1065]=95; r[1066]=9; r[1067]=13; r[1068]=45; r[1069]=58; r[1070]=65; r[1071]=90;
371
+ r[1072]=97; r[1073]=122; r[1074]=32; r[1075]=34; r[1076]=39; r[1077]=47; r[1078]=61; r[1079]=62;
372
+ r[1080]=63; r[1081]=92; r[1082]=95; r[1083]=9; r[1084]=13; r[1085]=45; r[1086]=58; r[1087]=65;
373
+ r[1088]=90; r[1089]=97; r[1090]=122; r[1091]=34; r[1092]=39; r[1093]=62; r[1094]=92; r[1095]=34;
374
+ r[1096]=39; r[1097]=92; r[1098]=13; r[1099]=32; r[1100]=34; r[1101]=39; r[1102]=47; r[1103]=60;
375
+ r[1104]=62; r[1105]=92; r[1106]=9; r[1107]=10; r[1108]=11; r[1109]=12; r[1110]=13; r[1111]=32;
376
+ r[1112]=34; r[1113]=39; r[1114]=47; r[1115]=60; r[1116]=62; r[1117]=92; r[1118]=9; r[1119]=10;
377
+ r[1120]=11; r[1121]=12; r[1122]=13; r[1123]=32; r[1124]=34; r[1125]=39; r[1126]=47; r[1127]=60;
378
+ r[1128]=62; r[1129]=63; r[1130]=92; r[1131]=95; r[1132]=9; r[1133]=10; r[1134]=11; r[1135]=12;
379
+ r[1136]=45; r[1137]=58; r[1138]=65; r[1139]=90; r[1140]=97; r[1141]=122; r[1142]=13; r[1143]=32;
380
+ r[1144]=34; r[1145]=39; r[1146]=47; r[1147]=60; r[1148]=62; r[1149]=63; r[1150]=92; r[1151]=95;
381
+ r[1152]=9; r[1153]=10; r[1154]=11; r[1155]=12; r[1156]=45; r[1157]=58; r[1158]=65; r[1159]=90;
382
+ r[1160]=97; r[1161]=122; r[1162]=13; r[1163]=32; r[1164]=34; r[1165]=39; r[1166]=47; r[1167]=60;
383
+ r[1168]=62; r[1169]=63; r[1170]=92; r[1171]=95; r[1172]=9; r[1173]=10; r[1174]=11; r[1175]=12;
384
+ r[1176]=45; r[1177]=58; r[1178]=65; r[1179]=90; r[1180]=97; r[1181]=122; r[1182]=13; r[1183]=32;
385
+ r[1184]=34; r[1185]=39; r[1186]=47; r[1187]=60; r[1188]=62; r[1189]=92; r[1190]=9; r[1191]=10;
386
+ r[1192]=11; r[1193]=12; r[1194]=13; r[1195]=32; r[1196]=34; r[1197]=39; r[1198]=47; r[1199]=60;
387
+ r[1200]=62; r[1201]=92; r[1202]=9; r[1203]=10; r[1204]=11; r[1205]=12; r[1206]=13; r[1207]=32;
388
+ r[1208]=34; r[1209]=39; r[1210]=47; r[1211]=60; r[1212]=62; r[1213]=63; r[1214]=92; r[1215]=95;
389
+ r[1216]=9; r[1217]=10; r[1218]=11; r[1219]=12; r[1220]=45; r[1221]=58; r[1222]=65; r[1223]=90;
390
+ r[1224]=97; r[1225]=122; r[1226]=32; r[1227]=34; r[1228]=39; r[1229]=47; r[1230]=62; r[1231]=63;
391
+ r[1232]=92; r[1233]=95; r[1234]=9; r[1235]=13; r[1236]=45; r[1237]=58; r[1238]=65; r[1239]=90;
392
+ r[1240]=97; r[1241]=122; r[1242]=32; r[1243]=34; r[1244]=39; r[1245]=47; r[1246]=62; r[1247]=63;
393
+ r[1248]=92; r[1249]=95; r[1250]=9; r[1251]=13; r[1252]=45; r[1253]=58; r[1254]=65; r[1255]=90;
394
+ r[1256]=97; r[1257]=122; r[1258]=13; r[1259]=32; r[1260]=34; r[1261]=39; r[1262]=47; r[1263]=60;
395
+ r[1264]=62; r[1265]=92; r[1266]=9; r[1267]=10; r[1268]=11; r[1269]=12; r[1270]=13; r[1271]=32;
396
+ r[1272]=34; r[1273]=39; r[1274]=47; r[1275]=60; r[1276]=61; r[1277]=62; r[1278]=63; r[1279]=92;
397
+ r[1280]=95; r[1281]=9; r[1282]=10; r[1283]=11; r[1284]=12; r[1285]=45; r[1286]=58; r[1287]=65;
398
+ r[1288]=90; r[1289]=97; r[1290]=122; r[1291]=13; r[1292]=32; r[1293]=39; r[1294]=47; r[1295]=60;
399
+ r[1296]=62; r[1297]=63; r[1298]=92; r[1299]=95; r[1300]=9; r[1301]=10; r[1302]=11; r[1303]=12;
400
+ r[1304]=45; r[1305]=58; r[1306]=65; r[1307]=90; r[1308]=97; r[1309]=122; r[1310]=34; r[1311]=39;
401
+ r[1312]=92; r[1313]=32; r[1314]=39; r[1315]=47; r[1316]=62; r[1317]=63; r[1318]=92; r[1319]=95;
402
+ r[1320]=9; r[1321]=13; r[1322]=45; r[1323]=58; r[1324]=65; r[1325]=90; r[1326]=97; r[1327]=122;
403
+ r[1328]=13; r[1329]=32; r[1330]=34; r[1331]=39; r[1332]=47; r[1333]=60; r[1334]=62; r[1335]=92;
404
+ r[1336]=9; r[1337]=10; r[1338]=11; r[1339]=12; r[1340]=32; r[1341]=34; r[1342]=47; r[1343]=62;
405
+ r[1344]=63; r[1345]=92; r[1346]=95; r[1347]=9; r[1348]=13; r[1349]=45; r[1350]=58; r[1351]=65;
406
+ r[1352]=90; r[1353]=97; r[1354]=122; r[1355]=34; r[1356]=39; r[1357]=92; r[1358]=13; r[1359]=32;
407
+ r[1360]=39; r[1361]=47; r[1362]=60; r[1363]=62; r[1364]=92; r[1365]=9; r[1366]=10; r[1367]=11;
408
+ r[1368]=12; r[1369]=34; r[1370]=92; r[1371]=39; r[1372]=92; r[1373]=13; r[1374]=32; r[1375]=34;
409
+ r[1376]=39; r[1377]=47; r[1378]=60; r[1379]=62; r[1380]=9; r[1381]=10; r[1382]=11; r[1383]=12;
410
+ r[1384]=58; r[1385]=95; r[1386]=120; r[1387]=65; r[1388]=90; r[1389]=97; r[1390]=122; r[1391]=32;
411
+ r[1392]=63; r[1393]=95; r[1394]=9; r[1395]=13; r[1396]=45; r[1397]=46; r[1398]=48; r[1399]=58;
412
+ r[1400]=65; r[1401]=90; r[1402]=97; r[1403]=122; r[1404]=32; r[1405]=63; r[1406]=95; r[1407]=109;
413
+ r[1408]=9; r[1409]=13; r[1410]=45; r[1411]=46; r[1412]=48; r[1413]=58; r[1414]=65; r[1415]=90;
414
+ r[1416]=97; r[1417]=122; r[1418]=32; r[1419]=63; r[1420]=95; r[1421]=108; r[1422]=9; r[1423]=13;
415
+ r[1424]=45; r[1425]=46; r[1426]=48; r[1427]=58; r[1428]=65; r[1429]=90; r[1430]=97; r[1431]=122;
416
+ r[1432]=32; r[1433]=63; r[1434]=95; r[1435]=9; r[1436]=13; r[1437]=45; r[1438]=46; r[1439]=48;
417
+ r[1440]=58; r[1441]=65; r[1442]=90; r[1443]=97; r[1444]=122; r[1445]=101; r[1446]=114; r[1447]=115;
418
+ r[1448]=105; r[1449]=111; r[1450]=110; r[1451]=32; r[1452]=61; r[1453]=9; r[1454]=13; r[1455]=32;
419
+ r[1456]=34; r[1457]=39; r[1458]=9; r[1459]=13; r[1460]=95; r[1461]=45; r[1462]=46; r[1463]=48;
420
+ r[1464]=58; r[1465]=65; r[1466]=90; r[1467]=97; r[1468]=122; r[1469]=34; r[1470]=95; r[1471]=45;
421
+ r[1472]=46; r[1473]=48; r[1474]=58; r[1475]=65; r[1476]=90; r[1477]=97; r[1478]=122; r[1479]=32;
422
+ r[1480]=62; r[1481]=63; r[1482]=9; r[1483]=13; r[1484]=32; r[1485]=62; r[1486]=63; r[1487]=101;
423
+ r[1488]=115; r[1489]=9; r[1490]=13; r[1491]=62; r[1492]=110; r[1493]=99; r[1494]=111; r[1495]=100;
424
+ r[1496]=105; r[1497]=110; r[1498]=103; r[1499]=32; r[1500]=61; r[1501]=9; r[1502]=13; r[1503]=32;
425
+ r[1504]=34; r[1505]=39; r[1506]=9; r[1507]=13; r[1508]=65; r[1509]=90; r[1510]=97; r[1511]=122;
426
+ r[1512]=34; r[1513]=95; r[1514]=45; r[1515]=46; r[1516]=48; r[1517]=57; r[1518]=65; r[1519]=90;
427
+ r[1520]=97; r[1521]=122; r[1522]=32; r[1523]=62; r[1524]=63; r[1525]=9; r[1526]=13; r[1527]=32;
428
+ r[1528]=62; r[1529]=63; r[1530]=115; r[1531]=9; r[1532]=13; r[1533]=116; r[1534]=97; r[1535]=110;
429
+ r[1536]=100; r[1537]=97; r[1538]=108; r[1539]=111; r[1540]=110; r[1541]=101; r[1542]=32; r[1543]=61;
430
+ r[1544]=9; r[1545]=13; r[1546]=32; r[1547]=34; r[1548]=39; r[1549]=9; r[1550]=13; r[1551]=110;
431
+ r[1552]=121; r[1553]=111; r[1554]=34; r[1555]=32; r[1556]=62; r[1557]=63; r[1558]=9; r[1559]=13;
432
+ r[1560]=101; r[1561]=115; r[1562]=110; r[1563]=121; r[1564]=111; r[1565]=39; r[1566]=101; r[1567]=115;
433
+ r[1568]=65; r[1569]=90; r[1570]=97; r[1571]=122; r[1572]=39; r[1573]=95; r[1574]=45; r[1575]=46;
434
+ r[1576]=48; r[1577]=57; r[1578]=65; r[1579]=90; r[1580]=97; r[1581]=122; r[1582]=95; r[1583]=45;
435
+ r[1584]=46; r[1585]=48; r[1586]=58; r[1587]=65; r[1588]=90; r[1589]=97; r[1590]=122; r[1591]=39;
436
+ r[1592]=95; r[1593]=45; r[1594]=46; r[1595]=48; r[1596]=58; r[1597]=65; r[1598]=90; r[1599]=97;
437
+ r[1600]=122; r[1601]=62; r[1602]=62; r[1603]=10; r[1604]=60; r[1605]=33; r[1606]=47; r[1607]=58;
438
+ r[1608]=63; r[1609]=95; r[1610]=65; r[1611]=90; r[1612]=97; r[1613]=122; r[1614]=39; r[1615]=93;
439
+ r[1616]=34; r[1617]=34; r[1618]=92; r[1619]=39; r[1620]=92; r[1621]=34; r[1622]=39; r[1623]=92;
440
+ r[1624]=32; r[1625]=9; r[1626]=13; r[1627]=32; r[1628]=118; r[1629]=9; r[1630]=13; r[1631]=10;
441
+ r[1632]=45; r[1633]=45; r[1634]=10; r[1635]=93; r[1636]=93; r[1637]=10; r[1638]=62; r[1639]=63;
442
+ r[1640]=62; r[1641]=0;
443
+ }
874
444
 
445
+ private static char[] create__hpricot_scan_trans_keys( )
446
+ {
447
+ char[] r = new char[1642];
448
+ init__hpricot_scan_trans_keys_0( r );
449
+ return r;
450
+ }
451
+
452
+ private static final char _hpricot_scan_trans_keys[] = create__hpricot_scan_trans_keys();
453
+
454
+
455
+ private static void init__hpricot_scan_single_lengths_0( byte[] r )
456
+ {
457
+ r[0]=3; r[1]=1; r[2]=1; r[3]=1; r[4]=1; r[5]=1; r[6]=1; r[7]=1;
458
+ r[8]=1; r[9]=3; r[10]=5; r[11]=5; r[12]=1; r[13]=1; r[14]=1; r[15]=1;
459
+ r[16]=1; r[17]=1; r[18]=3; r[19]=4; r[20]=4; r[21]=3; r[22]=5; r[23]=1;
460
+ r[24]=1; r[25]=3; r[26]=1; r[27]=2; r[28]=1; r[29]=1; r[30]=4; r[31]=4;
461
+ r[32]=7; r[33]=7; r[34]=7; r[35]=7; r[36]=5; r[37]=2; r[38]=2; r[39]=4;
462
+ r[40]=2; r[41]=3; r[42]=3; r[43]=4; r[44]=2; r[45]=3; r[46]=4; r[47]=4;
463
+ r[48]=1; r[49]=1; r[50]=1; r[51]=1; r[52]=1; r[53]=1; r[54]=1; r[55]=1;
464
+ r[56]=1; r[57]=1; r[58]=1; r[59]=2; r[60]=4; r[61]=2; r[62]=5; r[63]=5;
465
+ r[64]=6; r[65]=6; r[66]=1; r[67]=7; r[68]=5; r[69]=5; r[70]=7; r[71]=8;
466
+ r[72]=8; r[73]=5; r[74]=7; r[75]=9; r[76]=9; r[77]=7; r[78]=7; r[79]=7;
467
+ r[80]=2; r[81]=2; r[82]=8; r[83]=8; r[84]=3; r[85]=8; r[86]=8; r[87]=10;
468
+ r[88]=10; r[89]=9; r[90]=9; r[91]=10; r[92]=10; r[93]=7; r[94]=7; r[95]=8;
469
+ r[96]=8; r[97]=8; r[98]=8; r[99]=3; r[100]=7; r[101]=2; r[102]=2; r[103]=8;
470
+ r[104]=8; r[105]=3; r[106]=8; r[107]=7; r[108]=9; r[109]=10; r[110]=10; r[111]=7;
471
+ r[112]=7; r[113]=8; r[114]=10; r[115]=10; r[116]=8; r[117]=10; r[118]=11; r[119]=9;
472
+ r[120]=9; r[121]=4; r[122]=3; r[123]=8; r[124]=8; r[125]=10; r[126]=10; r[127]=10;
473
+ r[128]=8; r[129]=8; r[130]=10; r[131]=8; r[132]=8; r[133]=8; r[134]=11; r[135]=9;
474
+ r[136]=3; r[137]=7; r[138]=8; r[139]=7; r[140]=3; r[141]=7; r[142]=2; r[143]=2;
475
+ r[144]=7; r[145]=3; r[146]=3; r[147]=4; r[148]=4; r[149]=3; r[150]=1; r[151]=1;
476
+ r[152]=1; r[153]=1; r[154]=1; r[155]=1; r[156]=2; r[157]=3; r[158]=1; r[159]=2;
477
+ r[160]=3; r[161]=5; r[162]=1; r[163]=1; r[164]=1; r[165]=1; r[166]=1; r[167]=1;
478
+ r[168]=1; r[169]=1; r[170]=2; r[171]=3; r[172]=0; r[173]=2; r[174]=3; r[175]=4;
479
+ r[176]=1; r[177]=1; r[178]=1; r[179]=1; r[180]=1; r[181]=1; r[182]=1; r[183]=1;
480
+ r[184]=1; r[185]=2; r[186]=3; r[187]=2; r[188]=1; r[189]=1; r[190]=3; r[191]=1;
481
+ r[192]=1; r[193]=2; r[194]=1; r[195]=1; r[196]=1; r[197]=1; r[198]=0; r[199]=2;
482
+ r[200]=1; r[201]=2; r[202]=1; r[203]=1; r[204]=2; r[205]=5; r[206]=1; r[207]=1;
483
+ r[208]=1; r[209]=2; r[210]=2; r[211]=3; r[212]=1; r[213]=2; r[214]=2; r[215]=1;
484
+ r[216]=2; r[217]=1; r[218]=3; r[219]=1;
485
+ }
486
+
487
+ private static byte[] create__hpricot_scan_single_lengths( )
488
+ {
489
+ byte[] r = new byte[220];
490
+ init__hpricot_scan_single_lengths_0( r );
491
+ return r;
492
+ }
493
+
494
+ private static final byte _hpricot_scan_single_lengths[] = create__hpricot_scan_single_lengths();
495
+
496
+
497
+ private static void init__hpricot_scan_range_lengths_0( byte[] r )
498
+ {
499
+ r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0;
500
+ r[8]=1; r[9]=3; r[10]=5; r[11]=1; r[12]=0; r[13]=0; r[14]=0; r[15]=0;
501
+ r[16]=0; r[17]=1; r[18]=1; r[19]=4; r[20]=4; r[21]=1; r[22]=1; r[23]=0;
502
+ r[24]=0; r[25]=1; r[26]=0; r[27]=1; r[28]=0; r[29]=0; r[30]=5; r[31]=5;
503
+ r[32]=5; r[33]=5; r[34]=5; r[35]=5; r[36]=1; r[37]=0; r[38]=0; r[39]=1;
504
+ r[40]=0; r[41]=1; r[42]=1; r[43]=1; r[44]=0; r[45]=1; r[46]=1; r[47]=5;
505
+ r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0;
506
+ r[56]=0; r[57]=0; r[58]=0; r[59]=2; r[60]=5; r[61]=1; r[62]=4; r[63]=4;
507
+ r[64]=4; r[65]=4; r[66]=0; r[67]=2; r[68]=2; r[69]=4; r[70]=5; r[71]=5;
508
+ r[72]=5; r[73]=2; r[74]=2; r[75]=5; r[76]=5; r[77]=2; r[78]=2; r[79]=4;
509
+ r[80]=0; r[81]=0; r[82]=4; r[83]=4; r[84]=0; r[85]=2; r[86]=2; r[87]=5;
510
+ r[88]=5; r[89]=5; r[90]=5; r[91]=5; r[92]=5; r[93]=2; r[94]=2; r[95]=2;
511
+ r[96]=2; r[97]=2; r[98]=4; r[99]=0; r[100]=4; r[101]=0; r[102]=0; r[103]=4;
512
+ r[104]=4; r[105]=0; r[106]=2; r[107]=2; r[108]=5; r[109]=5; r[110]=5; r[111]=2;
513
+ r[112]=2; r[113]=2; r[114]=5; r[115]=5; r[116]=2; r[117]=5; r[118]=5; r[119]=4;
514
+ r[120]=4; r[121]=0; r[122]=0; r[123]=2; r[124]=2; r[125]=5; r[126]=5; r[127]=5;
515
+ r[128]=2; r[129]=2; r[130]=5; r[131]=4; r[132]=4; r[133]=2; r[134]=5; r[135]=5;
516
+ r[136]=0; r[137]=4; r[138]=2; r[139]=4; r[140]=0; r[141]=2; r[142]=0; r[143]=0;
517
+ r[144]=2; r[145]=2; r[146]=5; r[147]=5; r[148]=5; r[149]=5; r[150]=0; r[151]=0;
518
+ r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=1; r[157]=1; r[158]=4; r[159]=4;
519
+ r[160]=1; r[161]=1; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0;
520
+ r[168]=0; r[169]=0; r[170]=1; r[171]=1; r[172]=2; r[173]=4; r[174]=1; r[175]=1;
521
+ r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0;
522
+ r[184]=0; r[185]=1; r[186]=1; r[187]=0; r[188]=0; r[189]=0; r[190]=1; r[191]=0;
523
+ r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=2; r[199]=4;
524
+ r[200]=4; r[201]=4; r[202]=0; r[203]=0; r[204]=0; r[205]=2; r[206]=0; r[207]=0;
525
+ r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=1; r[213]=1; r[214]=0; r[215]=0;
526
+ r[216]=0; r[217]=0; r[218]=0; r[219]=0;
527
+ }
528
+
529
+ private static byte[] create__hpricot_scan_range_lengths( )
530
+ {
531
+ byte[] r = new byte[220];
532
+ init__hpricot_scan_range_lengths_0( r );
533
+ return r;
534
+ }
535
+
536
+ private static final byte _hpricot_scan_range_lengths[] = create__hpricot_scan_range_lengths();
537
+
538
+
539
+ private static void init__hpricot_scan_index_offsets_0( short[] r )
540
+ {
541
+ r[0]=0; r[1]=4; r[2]=6; r[3]=8; r[4]=10; r[5]=12; r[6]=14; r[7]=16;
542
+ r[8]=18; r[9]=21; r[10]=28; r[11]=39; r[12]=46; r[13]=48; r[14]=50; r[15]=52;
543
+ r[16]=54; r[17]=56; r[18]=59; r[19]=64; r[20]=73; r[21]=82; r[22]=87; r[23]=94;
544
+ r[24]=96; r[25]=98; r[26]=103; r[27]=105; r[28]=109; r[29]=111; r[30]=113; r[31]=123;
545
+ r[32]=133; r[33]=146; r[34]=159; r[35]=172; r[36]=185; r[37]=192; r[38]=195; r[39]=198;
546
+ r[40]=204; r[41]=207; r[42]=212; r[43]=217; r[44]=223; r[45]=226; r[46]=231; r[47]=237;
547
+ r[48]=247; r[49]=249; r[50]=251; r[51]=253; r[52]=255; r[53]=257; r[54]=259; r[55]=261;
548
+ r[56]=263; r[57]=265; r[58]=267; r[59]=269; r[60]=274; r[61]=284; r[62]=288; r[63]=298;
549
+ r[64]=308; r[65]=319; r[66]=330; r[67]=332; r[68]=342; r[69]=350; r[70]=360; r[71]=373;
550
+ r[72]=387; r[73]=401; r[74]=409; r[75]=419; r[76]=434; r[77]=449; r[78]=459; r[79]=469;
551
+ r[80]=481; r[81]=484; r[82]=487; r[83]=500; r[84]=513; r[85]=517; r[86]=528; r[87]=539;
552
+ r[88]=555; r[89]=571; r[90]=586; r[91]=601; r[92]=617; r[93]=633; r[94]=643; r[95]=653;
553
+ r[96]=664; r[97]=675; r[98]=686; r[99]=699; r[100]=703; r[101]=715; r[102]=718; r[103]=721;
554
+ r[104]=734; r[105]=747; r[106]=751; r[107]=762; r[108]=772; r[109]=787; r[110]=803; r[111]=819;
555
+ r[112]=829; r[113]=839; r[114]=850; r[115]=866; r[116]=882; r[117]=893; r[118]=909; r[119]=926;
556
+ r[120]=940; r[121]=954; r[122]=959; r[123]=963; r[124]=974; r[125]=985; r[126]=1001; r[127]=1017;
557
+ r[128]=1033; r[129]=1044; r[130]=1055; r[131]=1071; r[132]=1084; r[133]=1097; r[134]=1108; r[135]=1125;
558
+ r[136]=1140; r[137]=1144; r[138]=1156; r[139]=1167; r[140]=1179; r[141]=1183; r[142]=1193; r[143]=1196;
559
+ r[144]=1199; r[145]=1209; r[146]=1215; r[147]=1224; r[148]=1234; r[149]=1244; r[150]=1253; r[151]=1255;
560
+ r[152]=1257; r[153]=1259; r[154]=1261; r[155]=1263; r[156]=1265; r[157]=1269; r[158]=1274; r[159]=1280;
561
+ r[160]=1287; r[161]=1292; r[162]=1299; r[163]=1301; r[164]=1303; r[165]=1305; r[166]=1307; r[167]=1309;
562
+ r[168]=1311; r[169]=1313; r[170]=1315; r[171]=1319; r[172]=1324; r[173]=1327; r[174]=1334; r[175]=1339;
563
+ r[176]=1345; r[177]=1347; r[178]=1349; r[179]=1351; r[180]=1353; r[181]=1355; r[182]=1357; r[183]=1359;
564
+ r[184]=1361; r[185]=1363; r[186]=1367; r[187]=1372; r[188]=1375; r[189]=1377; r[190]=1379; r[191]=1384;
565
+ r[192]=1386; r[193]=1388; r[194]=1391; r[195]=1393; r[196]=1395; r[197]=1397; r[198]=1399; r[199]=1402;
566
+ r[200]=1409; r[201]=1415; r[202]=1422; r[203]=1424; r[204]=1426; r[205]=1429; r[206]=1437; r[207]=1439;
567
+ r[208]=1441; r[209]=1443; r[210]=1446; r[211]=1449; r[212]=1453; r[213]=1456; r[214]=1460; r[215]=1463;
568
+ r[216]=1465; r[217]=1468; r[218]=1470; r[219]=1474;
569
+ }
570
+
571
+ private static short[] create__hpricot_scan_index_offsets( )
572
+ {
573
+ short[] r = new short[220];
574
+ init__hpricot_scan_index_offsets_0( r );
575
+ return r;
576
+ }
577
+
578
+ private static final short _hpricot_scan_index_offsets[] = create__hpricot_scan_index_offsets();
579
+
580
+
581
+ private static void init__hpricot_scan_indicies_0( short[] r )
582
+ {
583
+ r[0]=1; r[1]=2; r[2]=3; r[3]=0; r[4]=4; r[5]=0; r[6]=5; r[7]=0;
584
+ r[8]=6; r[9]=0; r[10]=7; r[11]=0; r[12]=8; r[13]=0; r[14]=9; r[15]=0;
585
+ r[16]=10; r[17]=0; r[18]=11; r[19]=11; r[20]=0; r[21]=11; r[22]=12; r[23]=12;
586
+ r[24]=11; r[25]=12; r[26]=12; r[27]=0; r[28]=13; r[29]=15; r[30]=14; r[31]=16;
587
+ r[32]=14; r[33]=13; r[34]=14; r[35]=14; r[36]=14; r[37]=14; r[38]=0; r[39]=17;
588
+ r[40]=18; r[41]=19; r[42]=20; r[43]=21; r[44]=17; r[45]=0; r[46]=22; r[47]=0;
589
+ r[48]=23; r[49]=0; r[50]=24; r[51]=0; r[52]=25; r[53]=0; r[54]=26; r[55]=0;
590
+ r[56]=27; r[57]=27; r[58]=0; r[59]=27; r[60]=28; r[61]=29; r[62]=27; r[63]=0;
591
+ r[64]=30; r[65]=31; r[66]=30; r[67]=30; r[68]=30; r[69]=30; r[70]=30; r[71]=30;
592
+ r[72]=0; r[73]=32; r[74]=31; r[75]=32; r[76]=32; r[77]=32; r[78]=32; r[79]=32;
593
+ r[80]=32; r[81]=0; r[82]=33; r[83]=18; r[84]=21; r[85]=33; r[86]=0; r[87]=33;
594
+ r[88]=34; r[89]=35; r[90]=18; r[91]=21; r[92]=33; r[93]=0; r[94]=37; r[95]=36;
595
+ r[96]=37; r[97]=38; r[98]=40; r[99]=18; r[100]=21; r[101]=40; r[102]=39; r[103]=41;
596
+ r[104]=21; r[105]=41; r[106]=18; r[107]=41; r[108]=39; r[109]=37; r[110]=42; r[111]=37;
597
+ r[112]=43; r[113]=44; r[114]=45; r[115]=44; r[116]=44; r[117]=44; r[118]=44; r[119]=44;
598
+ r[120]=44; r[121]=44; r[122]=0; r[123]=46; r[124]=47; r[125]=46; r[126]=46; r[127]=46;
599
+ r[128]=46; r[129]=46; r[130]=46; r[131]=46; r[132]=0; r[133]=48; r[134]=48; r[135]=46;
600
+ r[136]=47; r[137]=18; r[138]=21; r[139]=46; r[140]=33; r[141]=46; r[142]=46; r[143]=46;
601
+ r[144]=46; r[145]=0; r[146]=48; r[147]=48; r[148]=34; r[149]=49; r[150]=18; r[151]=21;
602
+ r[152]=46; r[153]=33; r[154]=46; r[155]=46; r[156]=46; r[157]=46; r[158]=0; r[159]=50;
603
+ r[160]=50; r[161]=52; r[162]=53; r[163]=54; r[164]=55; r[165]=52; r[166]=51; r[167]=52;
604
+ r[168]=52; r[169]=52; r[170]=52; r[171]=42; r[172]=56; r[173]=56; r[174]=59; r[175]=60;
605
+ r[176]=61; r[177]=62; r[178]=58; r[179]=57; r[180]=58; r[181]=58; r[182]=58; r[183]=58;
606
+ r[184]=43; r[185]=57; r[186]=59; r[187]=63; r[188]=61; r[189]=62; r[190]=57; r[191]=43;
607
+ r[192]=65; r[193]=66; r[194]=64; r[195]=65; r[196]=68; r[197]=67; r[198]=69; r[199]=37;
608
+ r[200]=61; r[201]=62; r[202]=69; r[203]=43; r[204]=70; r[205]=71; r[206]=62; r[207]=72;
609
+ r[208]=73; r[209]=41; r[210]=72; r[211]=21; r[212]=71; r[213]=37; r[214]=61; r[215]=71;
610
+ r[216]=43; r[217]=74; r[218]=37; r[219]=75; r[220]=76; r[221]=74; r[222]=38; r[223]=70;
611
+ r[224]=77; r[225]=76; r[226]=77; r[227]=37; r[228]=75; r[229]=77; r[230]=38; r[231]=78;
612
+ r[232]=37; r[233]=54; r[234]=55; r[235]=78; r[236]=42; r[237]=58; r[238]=53; r[239]=58;
613
+ r[240]=58; r[241]=58; r[242]=58; r[243]=58; r[244]=58; r[245]=58; r[246]=43; r[247]=79;
614
+ r[248]=0; r[249]=80; r[250]=0; r[251]=81; r[252]=0; r[253]=82; r[254]=0; r[255]=83;
615
+ r[256]=0; r[257]=84; r[258]=0; r[259]=85; r[260]=0; r[261]=86; r[262]=0; r[263]=87;
616
+ r[264]=0; r[265]=88; r[266]=0; r[267]=89; r[268]=0; r[269]=90; r[270]=90; r[271]=90;
617
+ r[272]=90; r[273]=0; r[274]=91; r[275]=93; r[276]=92; r[277]=92; r[278]=91; r[279]=92;
618
+ r[280]=92; r[281]=92; r[282]=92; r[283]=0; r[284]=94; r[285]=95; r[286]=94; r[287]=0;
619
+ r[288]=96; r[289]=98; r[290]=99; r[291]=97; r[292]=97; r[293]=96; r[294]=97; r[295]=97;
620
+ r[296]=97; r[297]=0; r[298]=100; r[299]=102; r[300]=103; r[301]=101; r[302]=101; r[303]=100;
621
+ r[304]=101; r[305]=101; r[306]=101; r[307]=0; r[308]=104; r[309]=106; r[310]=107; r[311]=108;
622
+ r[312]=105; r[313]=105; r[314]=104; r[315]=105; r[316]=105; r[317]=105; r[318]=39; r[319]=109;
623
+ r[320]=111; r[321]=112; r[322]=113; r[323]=110; r[324]=110; r[325]=109; r[326]=110; r[327]=110;
624
+ r[328]=110; r[329]=39; r[330]=114; r[331]=39; r[332]=116; r[333]=116; r[334]=118; r[335]=119;
625
+ r[336]=120; r[337]=39; r[338]=113; r[339]=116; r[340]=117; r[341]=115; r[342]=122; r[343]=122;
626
+ r[344]=124; r[345]=39; r[346]=125; r[347]=122; r[348]=123; r[349]=121; r[350]=126; r[351]=111;
627
+ r[352]=113; r[353]=110; r[354]=110; r[355]=126; r[356]=110; r[357]=110; r[358]=110; r[359]=39;
628
+ r[360]=122; r[361]=122; r[362]=128; r[363]=39; r[364]=129; r[365]=127; r[366]=127; r[367]=122;
629
+ r[368]=123; r[369]=127; r[370]=127; r[371]=127; r[372]=121; r[373]=130; r[374]=130; r[375]=133;
630
+ r[376]=39; r[377]=134; r[378]=135; r[379]=132; r[380]=132; r[381]=130; r[382]=131; r[383]=132;
631
+ r[384]=132; r[385]=132; r[386]=121; r[387]=136; r[388]=136; r[389]=128; r[390]=39; r[391]=138;
632
+ r[392]=129; r[393]=127; r[394]=127; r[395]=136; r[396]=137; r[397]=127; r[398]=127; r[399]=127;
633
+ r[400]=121; r[401]=122; r[402]=122; r[403]=124; r[404]=39; r[405]=125; r[406]=122; r[407]=123;
634
+ r[408]=121; r[409]=139; r[410]=139; r[411]=141; r[412]=142; r[413]=143; r[414]=39; r[415]=125;
635
+ r[416]=139; r[417]=140; r[418]=115; r[419]=144; r[420]=144; r[421]=118; r[422]=119; r[423]=120;
636
+ r[424]=39; r[425]=113; r[426]=146; r[427]=146; r[428]=144; r[429]=145; r[430]=146; r[431]=146;
637
+ r[432]=146; r[433]=115; r[434]=139; r[435]=139; r[436]=141; r[437]=142; r[438]=147; r[439]=39;
638
+ r[440]=129; r[441]=146; r[442]=146; r[443]=139; r[444]=140; r[445]=146; r[446]=146; r[447]=146;
639
+ r[448]=115; r[449]=149; r[450]=149; r[451]=151; r[452]=152; r[453]=153; r[454]=154; r[455]=155;
640
+ r[456]=149; r[457]=150; r[458]=148; r[459]=157; r[460]=157; r[461]=151; r[462]=159; r[463]=160;
641
+ r[464]=161; r[465]=162; r[466]=157; r[467]=158; r[468]=156; r[469]=163; r[470]=164; r[471]=166;
642
+ r[472]=167; r[473]=165; r[474]=168; r[475]=165; r[476]=163; r[477]=165; r[478]=165; r[479]=165;
643
+ r[480]=160; r[481]=164; r[482]=168; r[483]=160; r[484]=169; r[485]=168; r[486]=160; r[487]=170;
644
+ r[488]=164; r[489]=172; r[490]=173; r[491]=174; r[492]=171; r[493]=168; r[494]=171; r[495]=170;
645
+ r[496]=171; r[497]=171; r[498]=171; r[499]=160; r[500]=175; r[501]=164; r[502]=166; r[503]=176;
646
+ r[504]=167; r[505]=165; r[506]=168; r[507]=165; r[508]=175; r[509]=165; r[510]=165; r[511]=165;
647
+ r[512]=160; r[513]=164; r[514]=177; r[515]=168; r[516]=160; r[517]=178; r[518]=178; r[519]=180;
648
+ r[520]=181; r[521]=182; r[522]=160; r[523]=167; r[524]=155; r[525]=178; r[526]=179; r[527]=148;
649
+ r[528]=183; r[529]=183; r[530]=180; r[531]=181; r[532]=182; r[533]=160; r[534]=167; r[535]=155;
650
+ r[536]=183; r[537]=184; r[538]=148; r[539]=183; r[540]=183; r[541]=180; r[542]=181; r[543]=182;
651
+ r[544]=160; r[545]=167; r[546]=185; r[547]=155; r[548]=185; r[549]=183; r[550]=184; r[551]=185;
652
+ r[552]=185; r[553]=185; r[554]=148; r[555]=186; r[556]=186; r[557]=188; r[558]=189; r[559]=190;
653
+ r[560]=160; r[561]=191; r[562]=185; r[563]=155; r[564]=185; r[565]=186; r[566]=187; r[567]=185;
654
+ r[568]=185; r[569]=185; r[570]=148; r[571]=149; r[572]=149; r[573]=151; r[574]=190; r[575]=153;
655
+ r[576]=192; r[577]=185; r[578]=155; r[579]=185; r[580]=149; r[581]=150; r[582]=185; r[583]=185;
656
+ r[584]=185; r[585]=148; r[586]=157; r[587]=157; r[588]=151; r[589]=194; r[590]=160; r[591]=191;
657
+ r[592]=193; r[593]=162; r[594]=193; r[595]=157; r[596]=158; r[597]=193; r[598]=193; r[599]=193;
658
+ r[600]=156; r[601]=195; r[602]=195; r[603]=151; r[604]=198; r[605]=160; r[606]=199; r[607]=200;
659
+ r[608]=197; r[609]=162; r[610]=197; r[611]=195; r[612]=196; r[613]=197; r[614]=197; r[615]=197;
660
+ r[616]=156; r[617]=201; r[618]=201; r[619]=151; r[620]=194; r[621]=160; r[622]=203; r[623]=191;
661
+ r[624]=193; r[625]=162; r[626]=193; r[627]=201; r[628]=202; r[629]=193; r[630]=193; r[631]=193;
662
+ r[632]=156; r[633]=157; r[634]=157; r[635]=151; r[636]=159; r[637]=160; r[638]=161; r[639]=162;
663
+ r[640]=157; r[641]=158; r[642]=156; r[643]=157; r[644]=157; r[645]=204; r[646]=159; r[647]=160;
664
+ r[648]=161; r[649]=162; r[650]=157; r[651]=158; r[652]=156; r[653]=186; r[654]=186; r[655]=188;
665
+ r[656]=189; r[657]=152; r[658]=160; r[659]=161; r[660]=155; r[661]=186; r[662]=187; r[663]=148;
666
+ r[664]=206; r[665]=206; r[666]=208; r[667]=204; r[668]=209; r[669]=210; r[670]=211; r[671]=212;
667
+ r[672]=206; r[673]=207; r[674]=205; r[675]=214; r[676]=214; r[677]=216; r[678]=204; r[679]=217;
668
+ r[680]=218; r[681]=219; r[682]=220; r[683]=214; r[684]=215; r[685]=213; r[686]=221; r[687]=222;
669
+ r[688]=169; r[689]=224; r[690]=225; r[691]=223; r[692]=226; r[693]=223; r[694]=221; r[695]=223;
670
+ r[696]=223; r[697]=223; r[698]=218; r[699]=222; r[700]=169; r[701]=226; r[702]=218; r[703]=228;
671
+ r[704]=164; r[705]=230; r[706]=231; r[707]=229; r[708]=232; r[709]=229; r[710]=228; r[711]=229;
672
+ r[712]=229; r[713]=229; r[714]=227; r[715]=164; r[716]=232; r[717]=227; r[718]=222; r[719]=232;
673
+ r[720]=227; r[721]=233; r[722]=164; r[723]=235; r[724]=236; r[725]=237; r[726]=234; r[727]=232;
674
+ r[728]=234; r[729]=233; r[730]=234; r[731]=234; r[732]=234; r[733]=227; r[734]=238; r[735]=164;
675
+ r[736]=230; r[737]=239; r[738]=231; r[739]=229; r[740]=232; r[741]=229; r[742]=238; r[743]=229;
676
+ r[744]=229; r[745]=229; r[746]=227; r[747]=164; r[748]=240; r[749]=232; r[750]=227; r[751]=242;
677
+ r[752]=242; r[753]=244; r[754]=245; r[755]=246; r[756]=227; r[757]=231; r[758]=247; r[759]=242;
678
+ r[760]=243; r[761]=241; r[762]=249; r[763]=249; r[764]=151; r[765]=251; r[766]=227; r[767]=252;
679
+ r[768]=253; r[769]=249; r[770]=250; r[771]=248; r[772]=249; r[773]=249; r[774]=151; r[775]=255;
680
+ r[776]=227; r[777]=256; r[778]=254; r[779]=253; r[780]=254; r[781]=249; r[782]=250; r[783]=254;
681
+ r[784]=254; r[785]=254; r[786]=248; r[787]=257; r[788]=257; r[789]=151; r[790]=260; r[791]=227;
682
+ r[792]=261; r[793]=262; r[794]=259; r[795]=253; r[796]=259; r[797]=257; r[798]=258; r[799]=259;
683
+ r[800]=259; r[801]=259; r[802]=248; r[803]=263; r[804]=263; r[805]=151; r[806]=255; r[807]=227;
684
+ r[808]=265; r[809]=256; r[810]=254; r[811]=253; r[812]=254; r[813]=263; r[814]=264; r[815]=254;
685
+ r[816]=254; r[817]=254; r[818]=248; r[819]=249; r[820]=249; r[821]=151; r[822]=251; r[823]=227;
686
+ r[824]=252; r[825]=253; r[826]=249; r[827]=250; r[828]=248; r[829]=249; r[830]=249; r[831]=216;
687
+ r[832]=251; r[833]=227; r[834]=252; r[835]=253; r[836]=249; r[837]=250; r[838]=248; r[839]=266;
688
+ r[840]=266; r[841]=268; r[842]=269; r[843]=270; r[844]=227; r[845]=252; r[846]=247; r[847]=266;
689
+ r[848]=267; r[849]=241; r[850]=271; r[851]=271; r[852]=244; r[853]=245; r[854]=246; r[855]=227;
690
+ r[856]=231; r[857]=273; r[858]=247; r[859]=273; r[860]=271; r[861]=272; r[862]=273; r[863]=273;
691
+ r[864]=273; r[865]=241; r[866]=266; r[867]=266; r[868]=268; r[869]=269; r[870]=274; r[871]=227;
692
+ r[872]=256; r[873]=273; r[874]=247; r[875]=273; r[876]=266; r[877]=267; r[878]=273; r[879]=273;
693
+ r[880]=273; r[881]=241; r[882]=206; r[883]=206; r[884]=216; r[885]=275; r[886]=209; r[887]=210;
694
+ r[888]=211; r[889]=212; r[890]=206; r[891]=207; r[892]=205; r[893]=214; r[894]=214; r[895]=216;
695
+ r[896]=204; r[897]=277; r[898]=218; r[899]=278; r[900]=276; r[901]=220; r[902]=276; r[903]=214;
696
+ r[904]=215; r[905]=276; r[906]=276; r[907]=276; r[908]=213; r[909]=279; r[910]=279; r[911]=216;
697
+ r[912]=204; r[913]=282; r[914]=218; r[915]=283; r[916]=284; r[917]=281; r[918]=220; r[919]=281;
698
+ r[920]=279; r[921]=280; r[922]=281; r[923]=281; r[924]=281; r[925]=213; r[926]=285; r[927]=222;
699
+ r[928]=169; r[929]=224; r[930]=286; r[931]=225; r[932]=223; r[933]=226; r[934]=223; r[935]=285;
700
+ r[936]=223; r[937]=223; r[938]=223; r[939]=218; r[940]=287; r[941]=222; r[942]=169; r[943]=289;
701
+ r[944]=290; r[945]=291; r[946]=288; r[947]=226; r[948]=288; r[949]=287; r[950]=288; r[951]=288;
702
+ r[952]=288; r[953]=218; r[954]=222; r[955]=169; r[956]=292; r[957]=226; r[958]=218; r[959]=293;
703
+ r[960]=293; r[961]=226; r[962]=218; r[963]=294; r[964]=294; r[965]=296; r[966]=297; r[967]=298;
704
+ r[968]=218; r[969]=225; r[970]=212; r[971]=294; r[972]=295; r[973]=205; r[974]=299; r[975]=299;
705
+ r[976]=296; r[977]=297; r[978]=298; r[979]=218; r[980]=225; r[981]=212; r[982]=299; r[983]=300;
706
+ r[984]=205; r[985]=299; r[986]=299; r[987]=296; r[988]=297; r[989]=298; r[990]=218; r[991]=225;
707
+ r[992]=301; r[993]=212; r[994]=301; r[995]=299; r[996]=300; r[997]=301; r[998]=301; r[999]=301;
708
+ r[1000]=205; r[1001]=302; r[1002]=302; r[1003]=304; r[1004]=305; r[1005]=306; r[1006]=218; r[1007]=278;
709
+ r[1008]=301; r[1009]=212; r[1010]=301; r[1011]=302; r[1012]=303; r[1013]=301; r[1014]=301; r[1015]=301;
710
+ r[1016]=205; r[1017]=206; r[1018]=206; r[1019]=216; r[1020]=275; r[1021]=306; r[1022]=210; r[1023]=307;
711
+ r[1024]=301; r[1025]=212; r[1026]=301; r[1027]=206; r[1028]=207; r[1029]=301; r[1030]=301; r[1031]=301;
712
+ r[1032]=205; r[1033]=214; r[1034]=214; r[1035]=216; r[1036]=204; r[1037]=217; r[1038]=218; r[1039]=219;
713
+ r[1040]=220; r[1041]=214; r[1042]=215; r[1043]=213; r[1044]=214; r[1045]=214; r[1046]=308; r[1047]=308;
714
+ r[1048]=217; r[1049]=218; r[1050]=219; r[1051]=220; r[1052]=214; r[1053]=215; r[1054]=213; r[1055]=206;
715
+ r[1056]=206; r[1057]=208; r[1058]=204; r[1059]=306; r[1060]=210; r[1061]=307; r[1062]=301; r[1063]=212;
716
+ r[1064]=301; r[1065]=206; r[1066]=207; r[1067]=301; r[1068]=301; r[1069]=301; r[1070]=205; r[1071]=309;
717
+ r[1072]=222; r[1073]=310; r[1074]=312; r[1075]=313; r[1076]=311; r[1077]=314; r[1078]=311; r[1079]=309;
718
+ r[1080]=311; r[1081]=311; r[1082]=311; r[1083]=210; r[1084]=309; r[1085]=315; r[1086]=169; r[1087]=312;
719
+ r[1088]=313; r[1089]=311; r[1090]=314; r[1091]=311; r[1092]=309; r[1093]=311; r[1094]=311; r[1095]=311;
720
+ r[1096]=210; r[1097]=302; r[1098]=302; r[1099]=304; r[1100]=305; r[1101]=209; r[1102]=218; r[1103]=219;
721
+ r[1104]=212; r[1105]=302; r[1106]=303; r[1107]=205; r[1108]=316; r[1109]=316; r[1110]=216; r[1111]=204;
722
+ r[1112]=277; r[1113]=218; r[1114]=318; r[1115]=278; r[1116]=276; r[1117]=220; r[1118]=276; r[1119]=316;
723
+ r[1120]=317; r[1121]=276; r[1122]=276; r[1123]=276; r[1124]=213; r[1125]=319; r[1126]=319; r[1127]=151;
724
+ r[1128]=274; r[1129]=321; r[1130]=322; r[1131]=273; r[1132]=247; r[1133]=273; r[1134]=319; r[1135]=320;
725
+ r[1136]=273; r[1137]=273; r[1138]=273; r[1139]=241; r[1140]=222; r[1141]=310; r[1142]=314; r[1143]=210;
726
+ r[1144]=323; r[1145]=164; r[1146]=325; r[1147]=326; r[1148]=324; r[1149]=327; r[1150]=324; r[1151]=323;
727
+ r[1152]=324; r[1153]=324; r[1154]=324; r[1155]=321; r[1156]=271; r[1157]=271; r[1158]=244; r[1159]=245;
728
+ r[1160]=246; r[1161]=227; r[1162]=231; r[1163]=247; r[1164]=271; r[1165]=272; r[1166]=241; r[1167]=328;
729
+ r[1168]=164; r[1169]=330; r[1170]=331; r[1171]=329; r[1172]=332; r[1173]=329; r[1174]=328; r[1175]=329;
730
+ r[1176]=329; r[1177]=329; r[1178]=153; r[1179]=315; r[1180]=169; r[1181]=314; r[1182]=210; r[1183]=319;
731
+ r[1184]=319; r[1185]=151; r[1186]=270; r[1187]=321; r[1188]=333; r[1189]=247; r[1190]=319; r[1191]=320;
732
+ r[1192]=241; r[1193]=164; r[1194]=332; r[1195]=153; r[1196]=164; r[1197]=327; r[1198]=321; r[1199]=144;
733
+ r[1200]=144; r[1201]=118; r[1202]=119; r[1203]=120; r[1204]=39; r[1205]=113; r[1206]=144; r[1207]=145;
734
+ r[1208]=115; r[1209]=334; r[1210]=334; r[1211]=335; r[1212]=334; r[1213]=334; r[1214]=0; r[1215]=336;
735
+ r[1216]=337; r[1217]=337; r[1218]=336; r[1219]=337; r[1220]=337; r[1221]=337; r[1222]=337; r[1223]=0;
736
+ r[1224]=336; r[1225]=337; r[1226]=337; r[1227]=338; r[1228]=336; r[1229]=337; r[1230]=337; r[1231]=337;
737
+ r[1232]=337; r[1233]=0; r[1234]=336; r[1235]=337; r[1236]=337; r[1237]=339; r[1238]=336; r[1239]=337;
738
+ r[1240]=337; r[1241]=337; r[1242]=337; r[1243]=0; r[1244]=340; r[1245]=337; r[1246]=337; r[1247]=340;
739
+ r[1248]=337; r[1249]=337; r[1250]=337; r[1251]=337; r[1252]=0; r[1253]=342; r[1254]=341; r[1255]=343;
740
+ r[1256]=341; r[1257]=344; r[1258]=341; r[1259]=345; r[1260]=341; r[1261]=346; r[1262]=341; r[1263]=347;
741
+ r[1264]=341; r[1265]=347; r[1266]=348; r[1267]=347; r[1268]=341; r[1269]=348; r[1270]=349; r[1271]=350;
742
+ r[1272]=348; r[1273]=341; r[1274]=351; r[1275]=351; r[1276]=351; r[1277]=351; r[1278]=351; r[1279]=341;
743
+ r[1280]=352; r[1281]=353; r[1282]=353; r[1283]=353; r[1284]=353; r[1285]=353; r[1286]=341; r[1287]=354;
744
+ r[1288]=355; r[1289]=356; r[1290]=354; r[1291]=341; r[1292]=354; r[1293]=355; r[1294]=356; r[1295]=357;
745
+ r[1296]=358; r[1297]=354; r[1298]=341; r[1299]=355; r[1300]=341; r[1301]=359; r[1302]=341; r[1303]=360;
746
+ r[1304]=341; r[1305]=361; r[1306]=341; r[1307]=362; r[1308]=341; r[1309]=363; r[1310]=341; r[1311]=364;
747
+ r[1312]=341; r[1313]=365; r[1314]=341; r[1315]=365; r[1316]=366; r[1317]=365; r[1318]=341; r[1319]=366;
748
+ r[1320]=367; r[1321]=368; r[1322]=366; r[1323]=341; r[1324]=369; r[1325]=369; r[1326]=341; r[1327]=370;
749
+ r[1328]=371; r[1329]=371; r[1330]=371; r[1331]=371; r[1332]=371; r[1333]=341; r[1334]=372; r[1335]=355;
750
+ r[1336]=356; r[1337]=372; r[1338]=341; r[1339]=372; r[1340]=355; r[1341]=356; r[1342]=358; r[1343]=372;
751
+ r[1344]=341; r[1345]=373; r[1346]=341; r[1347]=374; r[1348]=341; r[1349]=375; r[1350]=341; r[1351]=376;
752
+ r[1352]=341; r[1353]=377; r[1354]=341; r[1355]=378; r[1356]=341; r[1357]=379; r[1358]=341; r[1359]=380;
753
+ r[1360]=341; r[1361]=381; r[1362]=341; r[1363]=381; r[1364]=382; r[1365]=381; r[1366]=341; r[1367]=382;
754
+ r[1368]=383; r[1369]=384; r[1370]=382; r[1371]=341; r[1372]=385; r[1373]=386; r[1374]=341; r[1375]=387;
755
+ r[1376]=341; r[1377]=388; r[1378]=341; r[1379]=389; r[1380]=355; r[1381]=356; r[1382]=389; r[1383]=341;
756
+ r[1384]=390; r[1385]=341; r[1386]=387; r[1387]=341; r[1388]=391; r[1389]=392; r[1390]=341; r[1391]=393;
757
+ r[1392]=341; r[1393]=388; r[1394]=341; r[1395]=394; r[1396]=341; r[1397]=393; r[1398]=341; r[1399]=395;
758
+ r[1400]=395; r[1401]=341; r[1402]=370; r[1403]=396; r[1404]=396; r[1405]=396; r[1406]=396; r[1407]=396;
759
+ r[1408]=341; r[1409]=397; r[1410]=397; r[1411]=397; r[1412]=397; r[1413]=397; r[1414]=341; r[1415]=352;
760
+ r[1416]=398; r[1417]=398; r[1418]=398; r[1419]=398; r[1420]=398; r[1421]=341; r[1422]=400; r[1423]=399;
761
+ r[1424]=402; r[1425]=401; r[1426]=404; r[1427]=405; r[1428]=403; r[1429]=407; r[1430]=408; r[1431]=409;
762
+ r[1432]=410; r[1433]=409; r[1434]=409; r[1435]=409; r[1436]=406; r[1437]=37; r[1438]=43; r[1439]=41;
763
+ r[1440]=21; r[1441]=37; r[1442]=38; r[1443]=164; r[1444]=168; r[1445]=160; r[1446]=164; r[1447]=232;
764
+ r[1448]=227; r[1449]=222; r[1450]=169; r[1451]=226; r[1452]=218; r[1453]=336; r[1454]=336; r[1455]=411;
765
+ r[1456]=340; r[1457]=412; r[1458]=340; r[1459]=411; r[1460]=414; r[1461]=415; r[1462]=413; r[1463]=417;
766
+ r[1464]=416; r[1465]=419; r[1466]=420; r[1467]=418; r[1468]=422; r[1469]=421; r[1470]=424; r[1471]=425;
767
+ r[1472]=426; r[1473]=423; r[1474]=425; r[1475]=427; r[1476]=0;
768
+ }
769
+
770
+ private static short[] create__hpricot_scan_indicies( )
771
+ {
772
+ short[] r = new short[1477];
773
+ init__hpricot_scan_indicies_0( r );
774
+ return r;
775
+ }
776
+
777
+ private static final short _hpricot_scan_indicies[] = create__hpricot_scan_indicies();
778
+
779
+
780
+ private static void init__hpricot_scan_trans_targs_wi_0( short[] r )
781
+ {
782
+ r[0]=204; r[1]=1; r[2]=2; r[3]=53; r[4]=204; r[5]=3; r[6]=4; r[7]=5;
783
+ r[8]=6; r[9]=7; r[10]=8; r[11]=9; r[12]=10; r[13]=11; r[14]=10; r[15]=204;
784
+ r[16]=26; r[17]=11; r[18]=204; r[19]=12; r[20]=48; r[21]=26; r[22]=13; r[23]=14;
785
+ r[24]=15; r[25]=16; r[26]=17; r[27]=18; r[28]=19; r[29]=30; r[30]=20; r[31]=21;
786
+ r[32]=20; r[33]=22; r[34]=23; r[35]=28; r[36]=24; r[37]=25; r[38]=24; r[39]=204;
787
+ r[40]=25; r[41]=27; r[42]=29; r[43]=29; r[44]=31; r[45]=32; r[46]=31; r[47]=32;
788
+ r[48]=33; r[49]=34; r[50]=35; r[51]=36; r[52]=47; r[53]=32; r[54]=206; r[55]=40;
789
+ r[56]=35; r[57]=36; r[58]=47; r[59]=37; r[60]=34; r[61]=206; r[62]=40; r[63]=46;
790
+ r[64]=38; r[65]=39; r[66]=43; r[67]=38; r[68]=43; r[69]=39; r[70]=41; r[71]=42;
791
+ r[72]=41; r[73]=207; r[74]=43; r[75]=208; r[76]=44; r[77]=45; r[78]=39; r[79]=49;
792
+ r[80]=50; r[81]=51; r[82]=52; r[83]=21; r[84]=54; r[85]=55; r[86]=56; r[87]=57;
793
+ r[88]=58; r[89]=204; r[90]=60; r[91]=61; r[92]=60; r[93]=204; r[94]=61; r[95]=204;
794
+ r[96]=63; r[97]=62; r[98]=66; r[99]=204; r[100]=63; r[101]=64; r[102]=66; r[103]=204;
795
+ r[104]=65; r[105]=64; r[106]=66; r[107]=67; r[108]=204; r[109]=65; r[110]=64; r[111]=66;
796
+ r[112]=67; r[113]=204; r[114]=204; r[115]=68; r[116]=144; r[117]=74; r[118]=142; r[119]=143;
797
+ r[120]=73; r[121]=68; r[122]=69; r[123]=70; r[124]=73; r[125]=204; r[126]=69; r[127]=71;
798
+ r[128]=73; r[129]=204; r[130]=65; r[131]=72; r[132]=71; r[133]=73; r[134]=74; r[135]=204;
799
+ r[136]=65; r[137]=72; r[138]=74; r[139]=75; r[140]=76; r[141]=77; r[142]=141; r[143]=73;
800
+ r[144]=75; r[145]=76; r[146]=71; r[147]=73; r[148]=78; r[149]=79; r[150]=90; r[151]=70;
801
+ r[152]=93; r[153]=80; r[154]=209; r[155]=94; r[156]=78; r[157]=79; r[158]=90; r[159]=93;
802
+ r[160]=80; r[161]=209; r[162]=94; r[163]=79; r[164]=69; r[165]=82; r[166]=84; r[167]=209;
803
+ r[168]=81; r[169]=79; r[170]=83; r[171]=82; r[172]=84; r[173]=85; r[174]=209; r[175]=83;
804
+ r[176]=85; r[177]=209; r[178]=86; r[179]=95; r[180]=139; r[181]=140; r[182]=93; r[183]=87;
805
+ r[184]=88; r[185]=91; r[186]=87; r[187]=88; r[188]=89; r[189]=96; r[190]=93; r[191]=209;
806
+ r[192]=209; r[193]=91; r[194]=93; r[195]=83; r[196]=92; r[197]=91; r[198]=93; r[199]=95;
807
+ r[200]=209; r[201]=83; r[202]=92; r[203]=95; r[204]=90; r[205]=97; r[206]=98; r[207]=117;
808
+ r[208]=108; r[209]=128; r[210]=99; r[211]=211; r[212]=129; r[213]=97; r[214]=98; r[215]=117;
809
+ r[216]=108; r[217]=128; r[218]=99; r[219]=211; r[220]=129; r[221]=98; r[222]=100; r[223]=120;
810
+ r[224]=121; r[225]=211; r[226]=122; r[227]=101; r[228]=100; r[229]=103; r[230]=105; r[231]=210;
811
+ r[232]=102; r[233]=104; r[234]=103; r[235]=105; r[236]=106; r[237]=210; r[238]=104; r[239]=106;
812
+ r[240]=210; r[241]=107; r[242]=138; r[243]=113; r[244]=136; r[245]=137; r[246]=111; r[247]=112;
813
+ r[248]=107; r[249]=100; r[250]=108; r[251]=111; r[252]=210; r[253]=112; r[254]=109; r[255]=111;
814
+ r[256]=210; r[257]=104; r[258]=110; r[259]=109; r[260]=111; r[261]=113; r[262]=210; r[263]=104;
815
+ r[264]=110; r[265]=113; r[266]=114; r[267]=115; r[268]=116; r[269]=135; r[270]=111; r[271]=114;
816
+ r[272]=115; r[273]=109; r[274]=111; r[275]=90; r[276]=118; r[277]=128; r[278]=211; r[279]=119;
817
+ r[280]=134; r[281]=118; r[282]=128; r[283]=133; r[284]=211; r[285]=119; r[286]=123; r[287]=119;
818
+ r[288]=120; r[289]=121; r[290]=123; r[291]=211; r[292]=211; r[293]=98; r[294]=124; r[295]=133;
819
+ r[296]=131; r[297]=132; r[298]=128; r[299]=125; r[300]=126; r[301]=118; r[302]=125; r[303]=126;
820
+ r[304]=127; r[305]=130; r[306]=128; r[307]=211; r[308]=117; r[309]=98; r[310]=79; r[311]=120;
821
+ r[312]=121; r[313]=211; r[314]=122; r[315]=100; r[316]=119; r[317]=134; r[318]=133; r[319]=100;
822
+ r[320]=108; r[321]=101; r[322]=210; r[323]=100; r[324]=103; r[325]=105; r[326]=210; r[327]=102;
823
+ r[328]=79; r[329]=82; r[330]=84; r[331]=209; r[332]=81; r[333]=210; r[334]=146; r[335]=147;
824
+ r[336]=212; r[337]=146; r[338]=148; r[339]=149; r[340]=213; r[341]=204; r[342]=151; r[343]=152;
825
+ r[344]=153; r[345]=154; r[346]=155; r[347]=156; r[348]=157; r[349]=158; r[350]=200; r[351]=159;
826
+ r[352]=160; r[353]=159; r[354]=161; r[355]=204; r[356]=162; r[357]=163; r[358]=176; r[359]=164;
827
+ r[360]=165; r[361]=166; r[362]=167; r[363]=168; r[364]=169; r[365]=170; r[366]=171; r[367]=172;
828
+ r[368]=198; r[369]=173; r[370]=174; r[371]=173; r[372]=175; r[373]=177; r[374]=178; r[375]=179;
829
+ r[376]=180; r[377]=181; r[378]=182; r[379]=183; r[380]=184; r[381]=185; r[382]=186; r[383]=187;
830
+ r[384]=193; r[385]=188; r[386]=191; r[387]=189; r[388]=190; r[389]=190; r[390]=192; r[391]=194;
831
+ r[392]=196; r[393]=195; r[394]=197; r[395]=199; r[396]=199; r[397]=201; r[398]=201; r[399]=214;
832
+ r[400]=214; r[401]=216; r[402]=216; r[403]=204; r[404]=204; r[405]=205; r[406]=204; r[407]=0;
833
+ r[408]=59; r[409]=62; r[410]=145; r[411]=204; r[412]=150; r[413]=214; r[414]=214; r[415]=215;
834
+ r[416]=214; r[417]=202; r[418]=216; r[419]=216; r[420]=217; r[421]=216; r[422]=203; r[423]=218;
835
+ r[424]=218; r[425]=218; r[426]=219; r[427]=218;
836
+ }
837
+
838
+ private static short[] create__hpricot_scan_trans_targs_wi( )
839
+ {
840
+ short[] r = new short[428];
841
+ init__hpricot_scan_trans_targs_wi_0( r );
842
+ return r;
843
+ }
844
+
845
+ private static final short _hpricot_scan_trans_targs_wi[] = create__hpricot_scan_trans_targs_wi();
846
+
847
+
848
+ private static void init__hpricot_scan_trans_actions_wi_0( short[] r )
849
+ {
850
+ r[0]=71; r[1]=0; r[2]=0; r[3]=0; r[4]=59; r[5]=0; r[6]=0; r[7]=0;
851
+ r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=1; r[13]=5; r[14]=0; r[15]=90;
852
+ r[16]=5; r[17]=0; r[18]=51; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0;
853
+ r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=3; r[31]=19;
854
+ r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=3; r[37]=21; r[38]=0; r[39]=73;
855
+ r[40]=0; r[41]=0; r[42]=3; r[43]=0; r[44]=3; r[45]=81; r[46]=0; r[47]=19;
856
+ r[48]=0; r[49]=19; r[50]=3; r[51]=3; r[52]=3; r[53]=111; r[54]=182; r[55]=3;
857
+ r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=111; r[61]=144; r[62]=0; r[63]=21;
858
+ r[64]=3; r[65]=21; r[66]=84; r[67]=0; r[68]=21; r[69]=0; r[70]=21; r[71]=0;
859
+ r[72]=0; r[73]=144; r[74]=0; r[75]=144; r[76]=0; r[77]=0; r[78]=3; r[79]=0;
860
+ r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0;
861
+ r[88]=0; r[89]=61; r[90]=1; r[91]=5; r[92]=0; r[93]=96; r[94]=0; r[95]=55;
862
+ r[96]=5; r[97]=0; r[98]=5; r[99]=93; r[100]=0; r[101]=114; r[102]=0; r[103]=53;
863
+ r[104]=11; r[105]=0; r[106]=108; r[107]=11; r[108]=166; r[109]=0; r[110]=174; r[111]=23;
864
+ r[112]=0; r[113]=120; r[114]=57; r[115]=3; r[116]=3; r[117]=3; r[118]=0; r[119]=0;
865
+ r[120]=87; r[121]=0; r[122]=9; r[123]=9; r[124]=102; r[125]=162; r[126]=0; r[127]=174;
866
+ r[128]=117; r[129]=170; r[130]=105; r[131]=105; r[132]=0; r[133]=158; r[134]=11; r[135]=195;
867
+ r[136]=9; r[137]=9; r[138]=0; r[139]=78; r[140]=78; r[141]=0; r[142]=0; r[143]=150;
868
+ r[144]=3; r[145]=3; r[146]=190; r[147]=154; r[148]=3; r[149]=78; r[150]=78; r[151]=7;
869
+ r[152]=150; r[153]=3; r[154]=220; r[155]=3; r[156]=0; r[157]=9; r[158]=9; r[159]=102;
870
+ r[160]=0; r[161]=205; r[162]=0; r[163]=0; r[164]=7; r[165]=174; r[166]=23; r[167]=186;
871
+ r[168]=0; r[169]=7; r[170]=11; r[171]=0; r[172]=108; r[173]=11; r[174]=210; r[175]=0;
872
+ r[176]=0; r[177]=147; r[178]=3; r[179]=3; r[180]=7; r[181]=0; r[182]=87; r[183]=3;
873
+ r[184]=3; r[185]=190; r[186]=78; r[187]=78; r[188]=7; r[189]=0; r[190]=154; r[191]=215;
874
+ r[192]=226; r[193]=174; r[194]=117; r[195]=105; r[196]=105; r[197]=0; r[198]=158; r[199]=11;
875
+ r[200]=232; r[201]=9; r[202]=9; r[203]=0; r[204]=7; r[205]=3; r[206]=78; r[207]=78;
876
+ r[208]=99; r[209]=150; r[210]=3; r[211]=220; r[212]=3; r[213]=0; r[214]=9; r[215]=9;
877
+ r[216]=7; r[217]=102; r[218]=0; r[219]=205; r[220]=0; r[221]=0; r[222]=7; r[223]=174;
878
+ r[224]=23; r[225]=186; r[226]=0; r[227]=0; r[228]=0; r[229]=174; r[230]=23; r[231]=186;
879
+ r[232]=0; r[233]=11; r[234]=0; r[235]=108; r[236]=11; r[237]=210; r[238]=0; r[239]=0;
880
+ r[240]=147; r[241]=3; r[242]=3; r[243]=3; r[244]=0; r[245]=7; r[246]=87; r[247]=3;
881
+ r[248]=0; r[249]=9; r[250]=9; r[251]=102; r[252]=205; r[253]=0; r[254]=174; r[255]=117;
882
+ r[256]=215; r[257]=105; r[258]=105; r[259]=0; r[260]=158; r[261]=11; r[262]=232; r[263]=9;
883
+ r[264]=9; r[265]=0; r[266]=78; r[267]=78; r[268]=0; r[269]=7; r[270]=150; r[271]=3;
884
+ r[272]=3; r[273]=190; r[274]=154; r[275]=75; r[276]=174; r[277]=117; r[278]=215; r[279]=105;
885
+ r[280]=105; r[281]=0; r[282]=158; r[283]=11; r[284]=232; r[285]=0; r[286]=0; r[287]=11;
886
+ r[288]=0; r[289]=108; r[290]=11; r[291]=210; r[292]=147; r[293]=7; r[294]=3; r[295]=3;
887
+ r[296]=7; r[297]=7; r[298]=87; r[299]=3; r[300]=3; r[301]=190; r[302]=78; r[303]=78;
888
+ r[304]=7; r[305]=7; r[306]=154; r[307]=226; r[308]=7; r[309]=3; r[310]=75; r[311]=190;
889
+ r[312]=87; r[313]=200; r[314]=3; r[315]=99; r[316]=9; r[317]=9; r[318]=0; r[319]=78;
890
+ r[320]=78; r[321]=3; r[322]=226; r[323]=3; r[324]=190; r[325]=87; r[326]=200; r[327]=3;
891
+ r[328]=3; r[329]=190; r[330]=87; r[331]=200; r[332]=3; r[333]=220; r[334]=25; r[335]=25;
892
+ r[336]=0; r[337]=0; r[338]=0; r[339]=0; r[340]=31; r[341]=69; r[342]=0; r[343]=0;
893
+ r[344]=0; r[345]=0; r[346]=0; r[347]=0; r[348]=0; r[349]=0; r[350]=0; r[351]=3;
894
+ r[352]=13; r[353]=0; r[354]=0; r[355]=49; r[356]=0; r[357]=0; r[358]=0; r[359]=0;
895
+ r[360]=0; r[361]=0; r[362]=0; r[363]=0; r[364]=0; r[365]=0; r[366]=0; r[367]=0;
896
+ r[368]=0; r[369]=3; r[370]=15; r[371]=0; r[372]=0; r[373]=0; r[374]=0; r[375]=0;
897
+ r[376]=0; r[377]=0; r[378]=0; r[379]=0; r[380]=0; r[381]=0; r[382]=0; r[383]=0;
898
+ r[384]=0; r[385]=3; r[386]=3; r[387]=0; r[388]=17; r[389]=0; r[390]=0; r[391]=3;
899
+ r[392]=3; r[393]=0; r[394]=0; r[395]=3; r[396]=0; r[397]=3; r[398]=0; r[399]=37;
900
+ r[400]=135; r[401]=43; r[402]=138; r[403]=63; r[404]=132; r[405]=178; r[406]=67; r[407]=0;
901
+ r[408]=0; r[409]=1; r[410]=0; r[411]=65; r[412]=0; r[413]=33; r[414]=123; r[415]=31;
902
+ r[416]=35; r[417]=0; r[418]=39; r[419]=126; r[420]=31; r[421]=41; r[422]=0; r[423]=45;
903
+ r[424]=129; r[425]=141; r[426]=0; r[427]=47;
904
+ }
905
+
906
+ private static short[] create__hpricot_scan_trans_actions_wi( )
907
+ {
908
+ short[] r = new short[428];
909
+ init__hpricot_scan_trans_actions_wi_0( r );
910
+ return r;
911
+ }
912
+
913
+ private static final short _hpricot_scan_trans_actions_wi[] = create__hpricot_scan_trans_actions_wi();
914
+
915
+
916
+ private static void init__hpricot_scan_to_state_actions_0( short[] r )
917
+ {
918
+ r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0;
919
+ r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=0; r[13]=0; r[14]=0; r[15]=0;
920
+ r[16]=0; r[17]=0; r[18]=0; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0;
921
+ r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=0; r[31]=0;
922
+ r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=0; r[37]=0; r[38]=0; r[39]=0;
923
+ r[40]=0; r[41]=0; r[42]=0; r[43]=0; r[44]=0; r[45]=0; r[46]=0; r[47]=0;
924
+ r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0;
925
+ r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=0; r[61]=0; r[62]=0; r[63]=0;
926
+ r[64]=0; r[65]=0; r[66]=0; r[67]=0; r[68]=0; r[69]=0; r[70]=0; r[71]=0;
927
+ r[72]=0; r[73]=0; r[74]=0; r[75]=0; r[76]=0; r[77]=0; r[78]=0; r[79]=0;
928
+ r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0;
929
+ r[88]=0; r[89]=0; r[90]=0; r[91]=0; r[92]=0; r[93]=0; r[94]=0; r[95]=0;
930
+ r[96]=0; r[97]=0; r[98]=0; r[99]=0; r[100]=0; r[101]=0; r[102]=0; r[103]=0;
931
+ r[104]=0; r[105]=0; r[106]=0; r[107]=0; r[108]=0; r[109]=0; r[110]=0; r[111]=0;
932
+ r[112]=0; r[113]=0; r[114]=0; r[115]=0; r[116]=0; r[117]=0; r[118]=0; r[119]=0;
933
+ r[120]=0; r[121]=0; r[122]=0; r[123]=0; r[124]=0; r[125]=0; r[126]=0; r[127]=0;
934
+ r[128]=0; r[129]=0; r[130]=0; r[131]=0; r[132]=0; r[133]=0; r[134]=0; r[135]=0;
935
+ r[136]=0; r[137]=0; r[138]=0; r[139]=0; r[140]=0; r[141]=0; r[142]=0; r[143]=0;
936
+ r[144]=0; r[145]=0; r[146]=0; r[147]=0; r[148]=0; r[149]=0; r[150]=0; r[151]=0;
937
+ r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=0; r[157]=0; r[158]=0; r[159]=0;
938
+ r[160]=0; r[161]=0; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0;
939
+ r[168]=0; r[169]=0; r[170]=0; r[171]=0; r[172]=0; r[173]=0; r[174]=0; r[175]=0;
940
+ r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0;
941
+ r[184]=0; r[185]=0; r[186]=0; r[187]=0; r[188]=0; r[189]=0; r[190]=0; r[191]=0;
942
+ r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=0; r[199]=0;
943
+ r[200]=0; r[201]=0; r[202]=0; r[203]=0; r[204]=27; r[205]=0; r[206]=0; r[207]=0;
944
+ r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=0; r[213]=0; r[214]=27; r[215]=0;
945
+ r[216]=27; r[217]=0; r[218]=27; r[219]=0;
946
+ }
947
+
948
+ private static short[] create__hpricot_scan_to_state_actions( )
949
+ {
950
+ short[] r = new short[220];
951
+ init__hpricot_scan_to_state_actions_0( r );
952
+ return r;
953
+ }
954
+
955
+ private static final short _hpricot_scan_to_state_actions[] = create__hpricot_scan_to_state_actions();
956
+
957
+
958
+ private static void init__hpricot_scan_from_state_actions_0( short[] r )
959
+ {
960
+ r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0;
961
+ r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=0; r[13]=0; r[14]=0; r[15]=0;
962
+ r[16]=0; r[17]=0; r[18]=0; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0;
963
+ r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=0; r[31]=0;
964
+ r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=0; r[37]=0; r[38]=0; r[39]=0;
965
+ r[40]=0; r[41]=0; r[42]=0; r[43]=0; r[44]=0; r[45]=0; r[46]=0; r[47]=0;
966
+ r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0;
967
+ r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=0; r[61]=0; r[62]=0; r[63]=0;
968
+ r[64]=0; r[65]=0; r[66]=0; r[67]=0; r[68]=0; r[69]=0; r[70]=0; r[71]=0;
969
+ r[72]=0; r[73]=0; r[74]=0; r[75]=0; r[76]=0; r[77]=0; r[78]=0; r[79]=0;
970
+ r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0;
971
+ r[88]=0; r[89]=0; r[90]=0; r[91]=0; r[92]=0; r[93]=0; r[94]=0; r[95]=0;
972
+ r[96]=0; r[97]=0; r[98]=0; r[99]=0; r[100]=0; r[101]=0; r[102]=0; r[103]=0;
973
+ r[104]=0; r[105]=0; r[106]=0; r[107]=0; r[108]=0; r[109]=0; r[110]=0; r[111]=0;
974
+ r[112]=0; r[113]=0; r[114]=0; r[115]=0; r[116]=0; r[117]=0; r[118]=0; r[119]=0;
975
+ r[120]=0; r[121]=0; r[122]=0; r[123]=0; r[124]=0; r[125]=0; r[126]=0; r[127]=0;
976
+ r[128]=0; r[129]=0; r[130]=0; r[131]=0; r[132]=0; r[133]=0; r[134]=0; r[135]=0;
977
+ r[136]=0; r[137]=0; r[138]=0; r[139]=0; r[140]=0; r[141]=0; r[142]=0; r[143]=0;
978
+ r[144]=0; r[145]=0; r[146]=0; r[147]=0; r[148]=0; r[149]=0; r[150]=0; r[151]=0;
979
+ r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=0; r[157]=0; r[158]=0; r[159]=0;
980
+ r[160]=0; r[161]=0; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0;
981
+ r[168]=0; r[169]=0; r[170]=0; r[171]=0; r[172]=0; r[173]=0; r[174]=0; r[175]=0;
982
+ r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0;
983
+ r[184]=0; r[185]=0; r[186]=0; r[187]=0; r[188]=0; r[189]=0; r[190]=0; r[191]=0;
984
+ r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=0; r[199]=0;
985
+ r[200]=0; r[201]=0; r[202]=0; r[203]=0; r[204]=29; r[205]=0; r[206]=0; r[207]=0;
986
+ r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=0; r[213]=0; r[214]=29; r[215]=0;
987
+ r[216]=29; r[217]=0; r[218]=29; r[219]=0;
988
+ }
989
+
990
+ private static short[] create__hpricot_scan_from_state_actions( )
991
+ {
992
+ short[] r = new short[220];
993
+ init__hpricot_scan_from_state_actions_0( r );
994
+ return r;
995
+ }
996
+
997
+ private static final short _hpricot_scan_from_state_actions[] = create__hpricot_scan_from_state_actions();
998
+
999
+
1000
+ static final int hpricot_scan_start = 204;
875
1001
  static final int hpricot_scan_error = -1;
876
1002
 
1003
+ static final int hpricot_scan_en_html_comment = 214;
1004
+ static final int hpricot_scan_en_html_cdata = 216;
1005
+ static final int hpricot_scan_en_html_procins = 218;
1006
+ static final int hpricot_scan_en_main = 204;
1007
+
1008
+ // line 191 "ext/hpricot_scan/hpricot_scan.java.rl"
877
1009
 
878
1010
  public final static int BUFSIZE=16384;
879
1011
 
@@ -928,8 +1060,8 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
928
1060
  }
929
1061
 
930
1062
  buffer_size = BUFSIZE;
931
- if (recv.getInstanceVariable("@buffer_size") != null) {
932
- bufsize = recv.getInstanceVariable("@buffer_size");
1063
+ if (rubyApi.getInstanceVariable(recv, "@buffer_size") != null) {
1064
+ bufsize = rubyApi.getInstanceVariable(recv, "@buffer_size");
933
1065
  if (!bufsize.isNil()) {
934
1066
  buffer_size = RubyNumeric.fix2int(bufsize);
935
1067
  }
@@ -937,12 +1069,14 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
937
1069
  buf = new char[buffer_size];
938
1070
 
939
1071
 
1072
+ // line 1073 "ext/hpricot_scan/HpricotScanService.java"
940
1073
  {
941
1074
  cs = hpricot_scan_start;
942
1075
  tokstart = -1;
943
1076
  tokend = -1;
944
1077
  act = 0;
945
1078
  }
1079
+ // line 254 "ext/hpricot_scan/hpricot_scan.java.rl"
946
1080
 
947
1081
  while( !done ) {
948
1082
  IRubyObject str;
@@ -980,6 +1114,7 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
980
1114
  char[] data = buf;
981
1115
 
982
1116
 
1117
+ // line 1118 "ext/hpricot_scan/HpricotScanService.java"
983
1118
  {
984
1119
  int _klen;
985
1120
  int _trans;
@@ -995,8 +1130,10 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
995
1130
  while ( _nacts-- > 0 ) {
996
1131
  switch ( _hpricot_scan_actions[_acts++] ) {
997
1132
  case 21:
1133
+ // line 1 "ext/hpricot_scan/hpricot_scan.java.rl"
998
1134
  {tokstart = p;}
999
1135
  break;
1136
+ // line 1137 "ext/hpricot_scan/HpricotScanService.java"
1000
1137
  }
1001
1138
  }
1002
1139
 
@@ -1062,6 +1199,7 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
1062
1199
  switch ( _hpricot_scan_actions[_acts++] )
1063
1200
  {
1064
1201
  case 0:
1202
+ // line 146 "ext/hpricot_scan/hpricot_scan.java.rl"
1065
1203
  {
1066
1204
  if (text) {
1067
1205
  CAT(tag, p);
@@ -1075,45 +1213,58 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
1075
1213
  }
1076
1214
  break;
1077
1215
  case 1:
1216
+ // line 158 "ext/hpricot_scan/hpricot_scan.java.rl"
1078
1217
  { mark_tag = p; }
1079
1218
  break;
1080
1219
  case 2:
1220
+ // line 159 "ext/hpricot_scan/hpricot_scan.java.rl"
1081
1221
  { mark_aval = p; }
1082
1222
  break;
1083
1223
  case 3:
1224
+ // line 160 "ext/hpricot_scan/hpricot_scan.java.rl"
1084
1225
  { mark_akey = p; }
1085
1226
  break;
1086
1227
  case 4:
1228
+ // line 161 "ext/hpricot_scan/hpricot_scan.java.rl"
1087
1229
  { SET(tag, p); }
1088
1230
  break;
1089
1231
  case 5:
1232
+ // line 163 "ext/hpricot_scan/hpricot_scan.java.rl"
1090
1233
  { SET(aval, p); }
1091
1234
  break;
1092
1235
  case 6:
1236
+ // line 164 "ext/hpricot_scan/hpricot_scan.java.rl"
1093
1237
  {
1094
1238
  if (buf[p-1] == '"' || buf[p-1] == '\'') { SET(aval, p-1); }
1095
1239
  else { SET(aval, p); }
1096
1240
  }
1097
1241
  break;
1098
1242
  case 7:
1243
+ // line 168 "ext/hpricot_scan/hpricot_scan.java.rl"
1099
1244
  { SET(akey, p); }
1100
1245
  break;
1101
1246
  case 8:
1247
+ // line 169 "ext/hpricot_scan/hpricot_scan.java.rl"
1102
1248
  { SET(aval, p); ATTR(rb_str_new2("version"), aval); }
1103
1249
  break;
1104
1250
  case 9:
1251
+ // line 170 "ext/hpricot_scan/hpricot_scan.java.rl"
1105
1252
  { SET(aval, p); ATTR(rb_str_new2("encoding"), aval); }
1106
1253
  break;
1107
1254
  case 10:
1255
+ // line 171 "ext/hpricot_scan/hpricot_scan.java.rl"
1108
1256
  { SET(aval, p); ATTR(rb_str_new2("standalone"), aval); }
1109
1257
  break;
1110
1258
  case 11:
1259
+ // line 172 "ext/hpricot_scan/hpricot_scan.java.rl"
1111
1260
  { SET(aval, p); ATTR(rb_str_new2("public_id"), aval); }
1112
1261
  break;
1113
1262
  case 12:
1263
+ // line 173 "ext/hpricot_scan/hpricot_scan.java.rl"
1114
1264
  { SET(aval, p); ATTR(rb_str_new2("system_id"), aval); }
1115
1265
  break;
1116
1266
  case 13:
1267
+ // line 175 "ext/hpricot_scan/hpricot_scan.java.rl"
1117
1268
  {
1118
1269
  akey[0] = runtime.getNil();
1119
1270
  aval[0] = runtime.getNil();
@@ -1122,127 +1273,163 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
1122
1273
  }
1123
1274
  break;
1124
1275
  case 14:
1276
+ // line 182 "ext/hpricot_scan/hpricot_scan.java.rl"
1125
1277
  {
1126
1278
  ATTR(akey, aval);
1127
1279
  }
1128
1280
  break;
1129
1281
  case 15:
1282
+ // line 9 "ext/hpricot_scan/hpricot_scan.java.rl"
1130
1283
  {curline += 1;}
1131
1284
  break;
1132
1285
  case 16:
1286
+ // line 46 "ext/hpricot_scan/hpricot_scan.java.rl"
1133
1287
  { TEXT_PASS(); }
1134
1288
  break;
1135
1289
  case 17:
1290
+ // line 50 "ext/hpricot_scan/hpricot_scan.java.rl"
1136
1291
  { EBLK(comment, 3); {cs = 204; if (true) break _again;} }
1137
1292
  break;
1138
1293
  case 18:
1294
+ // line 55 "ext/hpricot_scan/hpricot_scan.java.rl"
1139
1295
  { EBLK(cdata, 3); {cs = 204; if (true) break _again;} }
1140
1296
  break;
1141
1297
  case 19:
1298
+ // line 60 "ext/hpricot_scan/hpricot_scan.java.rl"
1142
1299
  { EBLK(procins, 2); {cs = 204; if (true) break _again;} }
1143
1300
  break;
1144
1301
  case 22:
1302
+ // line 1 "ext/hpricot_scan/hpricot_scan.java.rl"
1145
1303
  {tokend = p+1;}
1146
1304
  break;
1147
1305
  case 23:
1148
- {tokend = p+1;{p = ((tokend))-1;}}
1306
+ // line 50 "ext/hpricot_scan/hpricot_scan.java.rl"
1307
+ {tokend = p+1;}
1149
1308
  break;
1150
1309
  case 24:
1151
- {tokend = p+1;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1310
+ // line 51 "ext/hpricot_scan/hpricot_scan.java.rl"
1311
+ {tokend = p+1;{ TEXT_PASS(); }}
1152
1312
  break;
1153
1313
  case 25:
1154
- {tokend = p;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1314
+ // line 51 "ext/hpricot_scan/hpricot_scan.java.rl"
1315
+ {tokend = p;p--;{ TEXT_PASS(); }}
1155
1316
  break;
1156
1317
  case 26:
1157
- {{ TEXT_PASS(); }{p = ((tokend))-1;}}
1318
+ // line 51 "ext/hpricot_scan/hpricot_scan.java.rl"
1319
+ {{p = ((tokend))-1;}{ TEXT_PASS(); }}
1158
1320
  break;
1159
1321
  case 27:
1160
- {tokend = p+1;{p = ((tokend))-1;}}
1322
+ // line 55 "ext/hpricot_scan/hpricot_scan.java.rl"
1323
+ {tokend = p+1;}
1161
1324
  break;
1162
1325
  case 28:
1163
- {tokend = p+1;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1326
+ // line 56 "ext/hpricot_scan/hpricot_scan.java.rl"
1327
+ {tokend = p+1;{ TEXT_PASS(); }}
1164
1328
  break;
1165
1329
  case 29:
1166
- {tokend = p;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1330
+ // line 56 "ext/hpricot_scan/hpricot_scan.java.rl"
1331
+ {tokend = p;p--;{ TEXT_PASS(); }}
1167
1332
  break;
1168
1333
  case 30:
1169
- {{ TEXT_PASS(); }{p = ((tokend))-1;}}
1334
+ // line 56 "ext/hpricot_scan/hpricot_scan.java.rl"
1335
+ {{p = ((tokend))-1;}{ TEXT_PASS(); }}
1170
1336
  break;
1171
1337
  case 31:
1172
- {tokend = p+1;{p = ((tokend))-1;}}
1338
+ // line 60 "ext/hpricot_scan/hpricot_scan.java.rl"
1339
+ {tokend = p+1;}
1173
1340
  break;
1174
1341
  case 32:
1175
- {tokend = p+1;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1342
+ // line 61 "ext/hpricot_scan/hpricot_scan.java.rl"
1343
+ {tokend = p+1;{ TEXT_PASS(); }}
1176
1344
  break;
1177
1345
  case 33:
1178
- {tokend = p;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1346
+ // line 61 "ext/hpricot_scan/hpricot_scan.java.rl"
1347
+ {tokend = p;p--;{ TEXT_PASS(); }}
1179
1348
  break;
1180
1349
  case 34:
1350
+ // line 66 "ext/hpricot_scan/hpricot_scan.java.rl"
1181
1351
  {act = 8;}
1182
1352
  break;
1183
1353
  case 35:
1354
+ // line 68 "ext/hpricot_scan/hpricot_scan.java.rl"
1184
1355
  {act = 10;}
1185
1356
  break;
1186
1357
  case 36:
1358
+ // line 70 "ext/hpricot_scan/hpricot_scan.java.rl"
1187
1359
  {act = 12;}
1188
1360
  break;
1189
1361
  case 37:
1362
+ // line 73 "ext/hpricot_scan/hpricot_scan.java.rl"
1190
1363
  {act = 15;}
1191
1364
  break;
1192
1365
  case 38:
1193
- {tokend = p+1;{ ELE(xmldecl); }{p = ((tokend))-1;}}
1366
+ // line 65 "ext/hpricot_scan/hpricot_scan.java.rl"
1367
+ {tokend = p+1;{ ELE(xmldecl); }}
1194
1368
  break;
1195
1369
  case 39:
1196
- {tokend = p+1;{ ELE(doctype); }{p = ((tokend))-1;}}
1370
+ // line 66 "ext/hpricot_scan/hpricot_scan.java.rl"
1371
+ {tokend = p+1;{ ELE(doctype); }}
1197
1372
  break;
1198
1373
  case 40:
1199
- {tokend = p+1;{ ELE(stag); }{p = ((tokend))-1;}}
1374
+ // line 68 "ext/hpricot_scan/hpricot_scan.java.rl"
1375
+ {tokend = p+1;{ ELE(stag); }}
1200
1376
  break;
1201
1377
  case 41:
1202
- {tokend = p+1;{ ELE(etag); }{p = ((tokend))-1;}}
1378
+ // line 69 "ext/hpricot_scan/hpricot_scan.java.rl"
1379
+ {tokend = p+1;{ ELE(etag); }}
1203
1380
  break;
1204
1381
  case 42:
1205
- {tokend = p+1;{ ELE(emptytag); }{p = ((tokend))-1;}}
1382
+ // line 70 "ext/hpricot_scan/hpricot_scan.java.rl"
1383
+ {tokend = p+1;{ ELE(emptytag); }}
1206
1384
  break;
1207
1385
  case 43:
1208
- {tokend = p+1;{ {{p = ((tokend))-1;}{cs = 214; if (true) break _again;}} }{p = ((tokend))-1;}}
1386
+ // line 71 "ext/hpricot_scan/hpricot_scan.java.rl"
1387
+ {tokend = p+1;{ {cs = 214; if (true) break _again;} }}
1209
1388
  break;
1210
1389
  case 44:
1211
- {tokend = p+1;{ {{p = ((tokend))-1;}{cs = 216; if (true) break _again;}} }{p = ((tokend))-1;}}
1390
+ // line 72 "ext/hpricot_scan/hpricot_scan.java.rl"
1391
+ {tokend = p+1;{ {cs = 216; if (true) break _again;} }}
1212
1392
  break;
1213
1393
  case 45:
1214
- {tokend = p+1;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1394
+ // line 73 "ext/hpricot_scan/hpricot_scan.java.rl"
1395
+ {tokend = p+1;{ TEXT_PASS(); }}
1215
1396
  break;
1216
1397
  case 46:
1217
- {tokend = p;{ {{p = ((tokend))-1;}{cs = 218; if (true) break _again;}} }{p = ((tokend))-1;}}
1398
+ // line 67 "ext/hpricot_scan/hpricot_scan.java.rl"
1399
+ {tokend = p;p--;{ {cs = 218; if (true) break _again;} }}
1218
1400
  break;
1219
1401
  case 47:
1220
- {tokend = p;{ TEXT_PASS(); }{p = ((tokend))-1;}}
1402
+ // line 73 "ext/hpricot_scan/hpricot_scan.java.rl"
1403
+ {tokend = p;p--;{ TEXT_PASS(); }}
1221
1404
  break;
1222
1405
  case 48:
1223
- {{ {{p = ((tokend))-1;}{cs = 218; if (true) break _again;}} }{p = ((tokend))-1;}}
1406
+ // line 67 "ext/hpricot_scan/hpricot_scan.java.rl"
1407
+ {{p = ((tokend))-1;}{ {cs = 218; if (true) break _again;} }}
1224
1408
  break;
1225
1409
  case 49:
1226
- {{ TEXT_PASS(); }{p = ((tokend))-1;}}
1410
+ // line 73 "ext/hpricot_scan/hpricot_scan.java.rl"
1411
+ {{p = ((tokend))-1;}{ TEXT_PASS(); }}
1227
1412
  break;
1228
1413
  case 50:
1414
+ // line 1 "ext/hpricot_scan/hpricot_scan.java.rl"
1229
1415
  { switch( act ) {
1230
1416
  case 8:
1231
- { ELE(doctype); }
1417
+ {{p = ((tokend))-1;} ELE(doctype); }
1232
1418
  break;
1233
1419
  case 10:
1234
- { ELE(stag); }
1420
+ {{p = ((tokend))-1;} ELE(stag); }
1235
1421
  break;
1236
1422
  case 12:
1237
- { ELE(emptytag); }
1423
+ {{p = ((tokend))-1;} ELE(emptytag); }
1238
1424
  break;
1239
1425
  case 15:
1240
- { TEXT_PASS(); }
1426
+ {{p = ((tokend))-1;} TEXT_PASS(); }
1241
1427
  break;
1242
1428
  default: break;
1243
1429
  }
1244
- {p = ((tokend))-1;}}
1430
+ }
1245
1431
  break;
1432
+ // line 1433 "ext/hpricot_scan/HpricotScanService.java"
1246
1433
  }
1247
1434
  }
1248
1435
 
@@ -1252,8 +1439,10 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
1252
1439
  while ( _nacts-- > 0 ) {
1253
1440
  switch ( _hpricot_scan_actions[_acts++] ) {
1254
1441
  case 20:
1442
+ // line 1 "ext/hpricot_scan/hpricot_scan.java.rl"
1255
1443
  {tokstart = -1;}
1256
1444
  break;
1445
+ // line 1446 "ext/hpricot_scan/HpricotScanService.java"
1257
1446
  }
1258
1447
  }
1259
1448
 
@@ -1262,6 +1451,7 @@ IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) {
1262
1451
  }
1263
1452
  }
1264
1453
  }
1454
+ // line 291 "ext/hpricot_scan/hpricot_scan.java.rl"
1265
1455
 
1266
1456
  if ( cs == hpricot_scan_error ) {
1267
1457
  if(!tag[0].isNil()) {
@@ -1336,5 +1526,6 @@ public static void Init_hpricot_scan(Ruby runtime) {
1336
1526
  CallbackFactory fact = runtime.callbackFactory(HpricotScanService.class);
1337
1527
  mHpricot.getMetaClass().defineMethod("scan",fact.getSingletonMethod("__hpricot_scan",IRubyObject.class));
1338
1528
  mHpricot.defineClassUnder("ParseError",runtime.getClass("Exception"),runtime.getClass("Exception").getAllocator());
1529
+ rubyApi = JavaEmbedUtils.newObjectAdapter();
1339
1530
  }
1340
1531
  }