1 /*
2  * Do not edit this file!
3  * This file is generated from:
4  *    IdnaMappingTable.txt (version 6.3.0)
5  */
6 
7 #include <stddef.h>
8 #include <idn/utf32.h>
9 #include <idn/auto/tr46category.h>
10 
11 /*
12  * TR46 codepoint tables.
13  */
14 #define TR46CATEGORY_BITS_0	9
15 #define TR46CATEGORY_BITS_1	7
16 #define TR46CATEGORY_BITS_2	5
17 
18 static const unsigned short tr46category_imap[] = {
19 	  272,   400,   528,   656,   784,   912,   912,   912,
20 	  912,  1040,  1168,   912,   912,  1296,  1424,  1552,
21 	 1680,  1808,  1936,  2064,  1424,  1424,  2192,  1424,
22 	 1424,  1424,  1424,  2320,  1424,  2448,  2576,  2704,
23 	  912,   912,   912,   912,   912,   912,   912,   912,
24 	  912,   912,  2832,  2960,  1424,  1424,  1424,  3088,
25 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
26 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
27 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
28 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
29 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
30 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
31 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
32 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
33 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
34 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
35 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
36 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
37 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
38 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
39 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
40 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
41 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
42 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
43 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
44 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
45 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
46 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
47 	 3216,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
48 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
49 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
50 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
51 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
52 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
53 	    0,     1,     2,     3,     0,     4,     5,     6,
54 	    7,     8,     9,    10,    11,    12,    13,    14,
55 	    7,    15,    16,     6,     6,    17,    18,    19,
56 	    6,     6,    20,    21,    22,    23,    24,    25,
57 	   26,    27,     6,     7,    28,     7,    29,     7,
58 	    7,    30,    31,    32,    33,     6,    34,    35,
59 	   36,     6,     6,    37,     6,     6,    38,     6,
60 	   39,     6,    40,     6,     6,    41,     6,    42,
61 	    6,    43,    44,     0,     0,    45,     0,    46,
62 	    6,     6,    47,    48,    49,    50,    51,    52,
63 	   53,    54,    55,    56,    57,    58,    59,    60,
64 	   49,    58,    61,    62,    63,    64,    65,    66,
65 	   67,    68,    69,    70,    71,    72,    73,    74,
66 	   71,    75,    76,    77,    78,    79,    80,    81,
67 	   32,    82,    83,     0,    84,    85,    86,     0,
68 	   87,     6,    88,    89,    90,    91,    92,     0,
69 	    6,     6,     6,     6,     6,     0,    93,    94,
70 	    6,     6,    95,    32,     6,     6,     6,     6,
71 	    6,     6,    96,     6,    97,    98,    99,     6,
72 	  100,     6,    75,   101,   102,     6,     6,   103,
73 	    6,     6,     6,     6,     6,     6,     6,     6,
74 	    6,     6,     6,     6,     6,     6,     6,     6,
75 	    6,     6,     6,     6,   104,     6,     6,   105,
76 	  106,   107,   108,   109,     6,   110,   111,   112,
77 	  113,     6,     6,   114,     6,   115,     6,   116,
78 	  101,   117,   118,   119,     6,   120,   121,     6,
79 	  122,     6,    95,   123,   112,   124,     0,     0,
80 	    6,     6,   120,   101,     6,     6,     6,   125,
81 	    6,   126,   127,     6,     0,     0,    34,   107,
82 	    6,   128,   129,   130,   131,    26,     6,   132,
83 	    7,     7,     7,     7,   133,     7,     7,     7,
84 	  134,   135,   136,   137,    26,   138,   139,   140,
85 	  141,   142,   143,   144,   145,   146,   147,   105,
86 	  148,   149,   150,    26,   151,     6,     6,     6,
87 	    6,   152,     6,   153,     6,     6,     6,     6,
88 	    6,   154,     6,     6,     6,     6,     6,   108,
89 	    6,   155,   156,   157,     0,   158,    26,   159,
90 	    6,     6,     6,     6,     6,     6,     6,     6,
91 	    6,     6,     6,     6,     6,     6,     6,     6,
92 	   32,     6,     6,     6,     6,     6,     6,     6,
93 	    6,     6,     6,     6,     6,     6,     6,     6,
94 	    6,     6,     6,     6,     6,     6,     6,     6,
95 	   87,     6,     6,   160,     6,     6,    94,     6,
96 	    6,     6,   161,     0,     0,     0,     0,     0,
97 	   26,   162,    95,   163,     7,     7,     7,   164,
98 	    6,   165,     6,   166,   107,   167,   167,     6,
99 	    6,    83,     0,     0,   168,     6,     6,   169,
100 	   26,    26,    26,    26,    26,    26,   170,     0,
101 	  171,   172,    32,     6,   173,     6,     6,   174,
102 	  175,   176,    26,   177,   178,    42,     6,   179,
103 	    0,     0,   180,   181,    26,    26,    26,   182,
104 	   26,    26,    26,    26,    26,    26,   183,    26,
105 	    6,     6,     6,     6,     6,     6,     6,     6,
106 	    6,     6,     6,     6,     6,     6,     6,     6,
107 	    6,     6,     6,     6,     6,     6,     6,     6,
108 	    6,     6,     6,     6,     6,     6,     6,     6,
109 	    6,     6,     6,     6,     6,     6,     6,     6,
110 	    6,     6,     6,     6,     6,     6,     6,     6,
111 	    6,     6,     6,     6,     6,     6,     6,     6,
112 	    6,     6,     6,     6,     6,     6,     6,     6,
113 	    6,     6,     6,     6,     6,     6,     6,     6,
114 	    6,     6,     6,     6,     6,     6,     6,     6,
115 	    6,     6,     6,     6,     6,     6,     6,     6,
116 	    6,     6,     6,     6,     6,     6,     6,     6,
117 	    6,     6,     6,     6,     6,     6,     6,     6,
118 	    6,     6,     6,     6,     6,     6,     6,     6,
119 	    6,     6,     6,     6,     6,     6,     6,     6,
120 	    6,     6,     6,     6,     6,     6,     6,     6,
121 	    6,     6,     6,     6,     6,     6,     6,     6,
122 	    6,     6,     6,     6,     6,     6,     6,     6,
123 	    6,     6,     6,     6,     6,     6,     6,     6,
124 	    6,     6,     6,     6,     6,     6,     6,     6,
125 	    6,     6,     6,     6,     6,     6,     6,     6,
126 	    6,     6,     6,     6,     6,     6,     6,     6,
127 	    6,     6,     6,     6,     6,     6,     6,     6,
128 	    6,     6,     6,     6,     6,     6,     6,     6,
129 	    6,     6,     6,     6,     6,     6,     6,     6,
130 	    6,     6,     6,     6,     6,   116,     6,     6,
131 	    6,     6,     6,     6,     6,     6,     6,     6,
132 	    6,     6,     6,     6,     6,     6,     6,     6,
133 	    6,     6,     6,     6,     6,     6,     6,     6,
134 	    6,     6,     6,     6,     6,     6,     6,     6,
135 	    6,     6,     6,     6,     6,     6,     6,     6,
136 	    6,     6,     6,     6,     6,     6,     6,     6,
137 	    6,     6,     6,     6,     6,     6,     6,     6,
138 	    6,     6,     6,     6,     6,     6,     6,     6,
139 	    6,     6,     6,     6,     6,     6,     6,     6,
140 	    6,     6,     6,     6,     6,     6,     6,     6,
141 	    6,     6,     6,     6,     6,     6,     6,     6,
142 	    6,     6,     6,     6,     6,     6,     6,     6,
143 	    6,     6,     6,     6,     6,     6,     6,     6,
144 	    6,     6,     6,     6,     6,     6,     6,     6,
145 	    6,     6,     6,     6,     6,     6,     6,     6,
146 	    6,     6,     6,     6,     6,     6,     6,     6,
147 	    6,     6,     6,     6,     6,     6,     6,     6,
148 	    6,     6,     6,     6,     6,     6,     6,     6,
149 	    6,     6,     6,     6,     6,     6,     6,     6,
150 	    6,     6,     6,     6,     6,     6,     6,     6,
151 	    6,     6,     6,     6,     6,     6,     6,     6,
152 	    6,     6,     6,     6,     6,     6,     6,     6,
153 	    6,     6,     6,     6,     6,     6,     6,     6,
154 	    6,     6,     6,     6,     6,     6,     6,     6,
155 	    6,     6,     6,     6,     6,     6,     6,     6,
156 	    6,     6,     6,     6,     6,     6,     6,     6,
157 	    6,     6,     6,     6,     6,     6,     6,     6,
158 	    6,     6,     6,     6,     6,     6,     6,     6,
159 	    6,     6,     6,     6,     6,     6,     6,     6,
160 	    6,     6,     6,     6,     6,     6,     6,     6,
161 	    6,     6,     6,     6,     6,     6,     6,     6,
162 	    6,     6,     6,     6,     6,     6,     6,     6,
163 	    6,     6,     6,     6,     6,     6,     6,     6,
164 	    6,     6,     6,     6,     6,     6,   184,     0,
165 	    6,     6,     6,     6,     6,     6,     6,     6,
166 	    6,     6,     6,     6,     6,     6,     6,     6,
167 	    6,     6,     6,     6,     6,     6,     6,     6,
168 	    6,     6,     6,     6,     6,     6,     6,     6,
169 	    6,     6,     6,     6,   185,     6,   186,     6,
170 	    6,     6,     6,     6,     6,     6,     6,     6,
171 	    6,   187,     7,   188,   189,     6,     6,   114,
172 	    6,   190,     7,   191,   192,   193,     0,   194,
173 	    6,   195,     6,   114,     6,     6,   196,    83,
174 	    6,     6,   197,   101,     6,     6,   198,     0,
175 	    6,   107,   199,    83,     6,     6,   200,   107,
176 	  201,   202,     0,     0,     0,     0,     6,   203,
177 	    6,     6,     6,     6,     6,     6,     6,     6,
178 	    6,     6,     6,     6,     6,     6,     6,     6,
179 	    6,     6,     6,     6,     6,     6,     6,     6,
180 	    6,     6,     6,     6,     6,     6,     6,     6,
181 	    6,     6,     6,     6,     6,     6,     6,     6,
182 	    6,     6,     6,     6,     6,     6,     6,     6,
183 	    6,     6,     6,     6,     6,     6,     6,     6,
184 	    6,     6,     6,     6,     6,     6,     6,     6,
185 	    6,     6,     6,     6,     6,     6,     6,     6,
186 	    6,     6,     6,     6,     6,     6,     6,     6,
187 	    6,     6,     6,     6,     6,     6,     6,     6,
188 	    6,     6,     6,     6,     6,   179,   204,    83,
189 	    0,     0,     0,     0,     0,     0,     0,     0,
190 	    0,     0,     0,     0,     0,     0,     0,     0,
191 	    0,     0,     0,     0,     0,     0,     0,     0,
192 	    0,     0,     0,     0,     0,     0,     0,     0,
193 	    0,     0,     0,     0,     0,     0,     0,     0,
194 	    0,     0,     0,     0,     0,     0,     0,     0,
195 	    0,     0,     0,     0,     0,     0,     0,     0,
196 	    0,     0,     0,     0,     0,     0,     0,     0,
197 	    0,     0,     0,     0,     0,     0,     0,     0,
198 	    0,     0,     0,     0,     0,     0,     0,     0,
199 	    0,     0,     0,     0,     0,     0,     0,     0,
200 	    0,     0,     0,     0,     0,     0,     0,     0,
201 	    0,     0,     0,     0,     0,     0,     0,     0,
202 	    0,     0,     0,     0,     0,     0,     0,     0,
203 	    0,     0,     0,     0,     0,     0,     0,     0,
204 	    0,     0,     0,     0,     0,     0,     0,     0,
205 	    0,     0,     0,     0,     0,     0,     0,     0,
206 	    0,     0,     0,     0,     0,     0,     0,     0,
207 	    0,     0,     0,     0,     0,     0,     0,     0,
208 	    0,     0,     0,     0,     0,     0,     0,     0,
209 	    0,     0,     0,     0,     0,     0,     0,     0,
210 	    0,     0,     0,     0,     0,     0,     0,     0,
211 	    0,     0,     0,     0,     0,     0,     0,     0,
212 	    0,     0,     0,     0,     0,     0,     0,     0,
213 	    0,     0,     0,     0,     0,     0,     0,     0,
214 	    0,     0,     0,     0,     0,     0,     0,     0,
215 	    0,     0,     0,     0,     0,     0,     0,     0,
216 	    0,     0,     0,     0,     0,     0,     0,     0,
217 	    0,     0,     0,     0,     0,     0,     0,     0,
218 	    0,     0,     0,     0,     0,     0,     0,     0,
219 	    0,     0,     0,     0,     0,     0,     0,     0,
220 	    0,     0,     0,     0,     0,     0,     0,     0,
221 	    0,     0,     0,     0,     0,     0,     0,     0,
222 	   26,    26,    26,    26,    26,    26,    26,    26,
223 	  205,   206,    26,   207,    26,    26,   208,     0,
224 	  209,   210,   211,    26,    26,   212,   213,    26,
225 	   26,    26,   214,   215,    26,    26,    26,    26,
226 	   26,   216,   217,    26,   218,    26,   219,   220,
227 	  221,   222,   223,   224,    26,    26,    26,   225,
228 	  226,     2,   227,    26,    26,   228,   229,   230,
229 	  231,   232,   233,     0,     6,     6,     6,    42,
230 	  234,   160,     6,     6,   235,     0,   147,   111,
231 	    0,     0,     0,     0,   101,     6,   105,     0,
232 	   95,   179,   156,     0,   236,     6,   237,     0,
233 	   26,   238,     6,     6,   111,   239,     0,     0,
234 	    0,     0,     0,     0,     0,     0,     0,     0,
235 	    0,     0,     0,     0,     0,     0,     0,     0,
236 	    0,     0,     0,     0,     0,     0,     0,     0,
237 	  240,   241,   242,     0,     0,     0,     0,     0,
238 	  243,   244,     0,     0,     6,    18,     0,     0,
239 	  245,   246,   247,     6,     0,     0,     0,     0,
240 	    6,   248,   249,   250,     0,     0,     0,     0,
241 	    6,     6,   251,     0,     0,     0,     0,     0,
242 	    0,     0,     0,     0,     0,     0,     0,     0,
243 	    0,     0,     0,    95,     0,     0,     0,     0,
244 	    0,     0,     0,     0,     0,     0,     0,     0,
245 	    6,     6,   252,   253,     6,    38,   254,   255,
246 	    6,   256,   257,     0,     6,     6,   255,     0,
247 	    0,     0,     0,     0,     0,     0,     0,     0,
248 	    0,     0,     0,     0,     0,     0,     0,     0,
249 	    0,     0,     0,     0,     0,     0,     0,     0,
250 	    0,     0,     0,     0,     0,     0,     0,     0,
251 	    0,     0,     0,     0,     6,   114,   239,     0,
252 	    0,     0,     0,     0,     0,     0,     0,     0,
253 	    0,     0,     0,     0,     0,     0,     0,     0,
254 	    0,     0,     0,     0,     0,     0,     0,     0,
255 	    0,     0,     0,     0,     0,     0,     0,     0,
256 	    0,     0,     0,     0,     0,     0,     0,     0,
257 	    0,     0,     0,     0,     0,     0,     0,     0,
258 	    0,     0,     0,     0,     0,     0,     0,     0,
259 	    0,     0,     0,     0,     0,     0,     0,     0,
260 	    0,     0,     0,     0,     0,     0,     0,     0,
261 	    6,     6,     6,     6,     6,     6,     6,     6,
262 	    6,     6,     6,     6,     6,     6,     6,     6,
263 	    6,     6,     6,     6,     6,     6,     6,     6,
264 	    6,     6,     6,   258,     0,     0,     0,     0,
265 	    6,     6,     6,   259,     0,     0,     0,     0,
266 	    0,     0,     0,     0,     0,     0,     0,     0,
267 	    0,     0,     0,     0,     0,     0,     0,     0,
268 	    0,     0,     0,     0,     0,     0,     0,     0,
269 	    0,     0,     0,     0,     0,     0,     0,     0,
270 	    0,     0,     0,     0,     0,     0,     0,     0,
271 	    0,     0,     0,     0,     0,     0,     0,     0,
272 	    0,     0,     0,     0,     0,     0,     0,     0,
273 	    0,     0,     0,     0,     0,     0,     0,     0,
274 	    0,     0,     0,     0,     0,     0,     0,     0,
275 	    0,     0,     0,     0,     0,     0,     0,     0,
276 	    0,     0,     0,     0,     0,     0,     0,     0,
277 	    6,     6,     6,     6,     6,     6,     6,     6,
278 	    6,     6,     6,     6,     6,     6,     6,     6,
279 	    6,     6,     6,     6,     6,     6,     6,     6,
280 	    6,     6,     6,     6,     6,     6,     6,     6,
281 	    6,   258,     0,     0,     0,     0,     0,     0,
282 	    0,     0,     0,     0,     0,     0,     0,     0,
283 	    0,     0,     0,     0,     0,     0,     0,     0,
284 	    0,     0,     0,     0,     0,     0,     0,     0,
285 	    0,     0,     0,     0,     0,     0,     0,     0,
286 	    0,     0,     0,     0,     0,     0,     0,     0,
287 	    0,     0,     0,     0,     0,     0,     0,     0,
288 	    0,     0,     0,     0,     0,     0,     0,     0,
289 	    0,     0,     0,     0,     0,     0,     0,     0,
290 	    0,     0,     0,     0,     0,     0,     0,     0,
291 	    0,     0,     0,     0,     0,     0,     0,     0,
292 	    0,     0,     0,     0,     0,     0,     0,     0,
293 	    0,     0,     0,     0,     0,     0,     0,     0,
294 	    0,     0,     0,     0,     0,     0,     0,     0,
295 	    0,     0,     0,     0,     0,     0,     0,     0,
296 	    0,     0,     0,     0,     0,     0,     0,     0,
297 	    0,     0,     0,     0,     0,     0,     0,     0,
298 	    0,     0,     0,     0,     0,     0,     0,     0,
299 	    0,     0,     0,     0,     0,     0,     0,     0,
300 	    0,     0,     0,     0,     0,     0,     0,     0,
301 	    6,     6,     6,     6,     6,     6,     6,     6,
302 	    6,     6,     6,     6,     6,     6,     6,     6,
303 	    6,   260,     0,     0,     0,     0,     0,     0,
304 	    0,     0,     0,     0,     0,     0,     0,     0,
305 	    0,     0,     0,     0,     0,     0,     0,     0,
306 	    0,     0,     0,     0,     0,     0,     0,     0,
307 	    0,     0,     0,     0,     0,     0,     0,     0,
308 	    6,     6,   261,    95,   262,     0,     0,     0,
309 	  263,     0,     0,     0,     0,     0,     0,     0,
310 	    0,     0,     0,     0,     0,     0,     0,     0,
311 	    0,     0,     0,     0,     0,     0,     0,     0,
312 	    0,     0,     0,     0,     0,     0,     0,     0,
313 	    0,     0,     0,     0,     0,     0,     0,     0,
314 	    0,     0,     0,     0,     0,     0,     0,     0,
315 	    0,     0,     0,     0,     0,     0,     0,     0,
316 	    0,     0,     0,     0,     0,     0,     0,     0,
317 	    0,     0,     0,     0,     0,     0,     0,     0,
318 	    0,     0,     0,     0,     0,     0,     0,     0,
319 	    0,     0,     0,     0,     0,     0,     0,     0,
320 	    0,     0,     0,     0,     0,     0,     0,     0,
321 	    0,     0,     0,     0,     0,     0,     0,     0,
322 	    0,     0,     0,     0,     0,     0,     0,     0,
323 	    0,     0,     0,     0,     0,     0,     0,     0,
324 	    0,     0,     0,     0,     0,     0,     0,     0,
325 	    6,     6,     6,     6,     6,     6,     6,   116,
326 	    6,   264,   265,   266,     6,   131,   267,     0,
327 	    6,     6,   268,     0,     0,     0,     0,     0,
328 	    6,     6,   107,    41,     0,     0,     0,     0,
329 	   26,    26,   269,    26,   270,   271,   177,    26,
330 	  272,   273,   274,    26,    26,    26,    26,    26,
331 	   26,    26,    26,    26,    26,   275,    26,    26,
332 	   26,    26,    26,    26,    26,    26,   276,    26,
333 	    0,     0,     0,     0,     0,     0,     0,     0,
334 	    0,     0,     0,     0,     0,     0,     0,     0,
335 	    0,     0,     0,     0,     0,     0,     0,     0,
336 	    0,     0,     0,     0,     0,     0,     0,     0,
337 	    0,     0,     0,     0,     0,     0,     0,     0,
338 	    0,     0,     0,     0,     0,     0,     0,     0,
339 	    0,     0,     0,     0,     0,     0,     0,     0,
340 	    0,     0,     0,     0,     0,     0,     0,     0,
341 	    0,     0,     0,     0,     0,     0,     0,     0,
342 	    0,     0,     0,     0,     0,     0,     0,     0,
343 	    0,     0,     0,     0,     0,     0,     0,     0,
344 	    0,     0,     0,     0,     0,     0,     0,     0,
345 	    0,     0,     0,     0,     0,     0,     0,     0,
346 	    0,     0,     0,     0,     0,     0,     0,     0,
347 	    0,     0,     0,     0,     0,     0,     0,     0,
348 	    0,     0,     0,     0,     0,     0,     0,     0,
349 	    0,     0,     0,     0,     0,     0,     0,     0,
350 	    0,     0,     0,     0,     0,     0,     0,     0,
351 	    0,     0,     0,     0,     0,     0,     0,     0,
352 	    0,     0,     0,     0,     0,     0,     0,     0,
353 	    0,     0,     0,     0,     0,     0,     0,     0,
354 	    0,     0,     0,     0,     0,     0,     0,     0,
355 	  177,   277,   278,   279,   280,   281,     0,   282,
356 	    0,     0,     0,     0,     0,     0,     0,     0,
357 	    6,   120,     6,     6,   108,   283,   284,     0,
358 	    0,   285,    27,   286,   287,     0,     0,   288,
359 	  289,   290,   291,     0,     0,     0,     0,     0,
360 	    6,   292,     6,   101,   108,     6,   293,   105,
361 	    6,    95,   294,     6,     6,     6,     6,   295,
362 	    6,   111,   179,   296,     0,     0,     0,   297,
363 	    6,     6,   298,     0,     6,     6,   268,     0,
364 	    6,     6,     6,   108,     0,     0,     0,     0,
365 	    0,     0,     0,     0,     0,     0,     0,     0,
366 	    0,     0,     0,     0,     0,     0,     0,     0,
367 	    0,     0,     0,     0,     0,     0,     0,     0,
368 	    0,     0,     0,     0,     0,     0,     0,     0,
369 	    0,     0,     0,     0,     0,     0,     0,     0,
370 	    0,     0,     0,     0,     0,     0,     0,     0,
371 	    0,     0,     0,     0,     0,     0,     0,     0,
372 	    0,     0,     0,     0,     0,     0,     0,     0,
373 	    6,     6,     6,     6,     6,     6,     6,     6,
374 	    6,     6,     6,     6,     6,     6,     6,     6,
375 	    6,     6,     6,     6,     6,     6,     6,     6,
376 	    6,     6,     6,     6,     6,     6,     6,     6,
377 	    6,     6,     6,     6,     6,     6,     6,     6,
378 	    6,     6,     6,     6,     6,     6,     6,     6,
379 	    6,     6,     6,     6,     6,     6,   107,     0,
380 	    6,     6,     6,     6,     6,     6,     6,     6,
381 	    6,     6,     6,     6,     6,     6,     6,     6,
382 	    6,     6,     6,     6,     6,     6,     6,     6,
383 	    6,     6,     6,     6,     6,     6,     6,     6,
384 	    6,     6,     6,     6,     6,     6,     6,     6,
385 	    6,     6,     6,     6,     6,     6,     6,     6,
386 	    6,     6,     6,     6,     6,     6,     6,     6,
387 	    6,     6,     6,     6,     6,     6,     6,     6,
388 	    6,     6,     6,     6,     6,     6,     6,     6,
389 	    6,     6,     6,     6,     6,     6,     6,     6,
390 	    6,     6,     6,     6,     6,     6,     6,     6,
391 	    6,     6,     6,     6,     6,     6,     6,     6,
392 	    6,     6,     6,     6,     6,     6,     6,     6,
393 	    6,     6,     6,     6,     6,     6,     6,     6,
394 	    6,     6,     6,     6,     6,     6,     6,     6,
395 	    6,     6,     6,     6,     6,     6,     6,     6,
396 	    6,   103,     6,     6,     6,     6,     6,     6,
397 	  111,     0,     0,     0,     0,     0,     0,     0,
398 	    0,     0,     0,     0,     0,     0,     0,     0,
399 	    0,     0,     0,     0,     0,     0,     0,     0,
400 	    0,     0,     0,     0,     0,     0,     0,     0,
401 	    0,     0,     0,     0,     0,     0,     0,     0,
402 	    0,     0,     0,     0,     0,     0,     0,     0,
403 	    0,     0,     0,     0,     0,     0,     0,     0,
404 	    0,     0,     0,     0,     0,     0,     0,     0,
405 	    0,     0,     0,     0,     0,     0,     0,     0,
406 	    0,     0,     0,     0,     0,     0,     0,     0,
407 	    0,     0,     0,     0,     0,     0,     0,     0,
408 	    0,     0,     0,     0,     0,     0,     0,     0,
409 	    0,     0,     0,     0,     0,     0,     0,     0,
410 	    0,     0,     0,     0,     0,     0,     0,     0,
411 	    0,     0,     0,     0,     0,     0,     0,     0,
412 	    0,     0,     0,     0,     0,     0,     0,     0,
413 	   26,    26,    26,   299,    26,    26,    26,    26,
414 	  182,    26,   182,    26,    26,   182,    26,    26,
415 	  214,     0,     0,     0,     0,     0,     0,     0,
416 	    0,     0,     0,     0,     0,     0,     0,     0,
417 	    0,     0,     0,     0,     0,     0,     0,     0,
418 	    0,     0,     0,     0,     0,     0,     0,     0,
419 	    0,     0,     0,     0,     0,     0,     0,     0,
420 	    0,     0,     0,     0,     0,     0,     0,     0,
421 	    0,     0,     0,     0,     0,     0,     0,     0,
422 	  300,   300,   300,   300,   300,   300,   300,   301,
423 	    0,     0,     0,     0,     0,     0,     0,     0,
424 	    0,     0,     0,     0,     0,     0,     0,     0,
425 	    0,     0,     0,     0,     0,     0,     0,     0,
426 	    0,     0,     0,     0,     0,     0,     0,     0,
427 	    0,     0,     0,     0,     0,     0,     0,     0,
428 	    0,     0,     0,     0,     0,     0,     0,     0,
429 	    0,     0,     0,     0,     0,     0,     0,     0,
430 	    0,     0,     0,     0,     0,     0,     0,     0,
431 	    0,     0,     0,     0,     0,     0,     0,     0,
432 	    0,     0,     0,     0,     0,     0,     0,     0,
433 	    0,     0,     0,     0,     0,     0,     0,     0,
434 	    0,     0,     0,     0,     0,     0,     0,     0,
435 	    0,     0,     0,     0,     0,     0,     0,     0,
436 	    0,     0,     0,     0,     0,     0,     0,     0,
437 };
438 
439 static const struct {
440 	unsigned char tbl[32];
441 } tr46category_table[] = {
442 	{{
443 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
444 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
445 	}},
446 	{{
447 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  0,
448 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
449 	}},
450 	{{
451 	 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
452 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,
453 	}},
454 	{{
455 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
456 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
457 	}},
458 	{{
459 	 1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  2,  0,  0,  3,  0,  1,  0,
460 	 0,  2,  2,  1,  2,  0,  0,  1,  2,  2,  0,  2,  2,  2,  0,
461 	}},
462 	{{
463 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
464 	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  4,
465 	}},
466 	{{
467 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
468 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
469 	}},
470 	{{
471 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
472 	 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
473 	}},
474 	{{
475 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
476 	 0,  2,  2,  2,  0,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,
477 	}},
478 	{{
479 	 2,  2,  0,  2,  0,  2,  0,  2,  0,  2,  2,  0,  2,  0,  2,  0,  2,
480 	 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
481 	}},
482 	{{
483 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
484 	 0,  2,  0,  2,  0,  2,  0,  2,  2,  0,  2,  0,  2,  0,  2,
485 	}},
486 	{{
487 	 0,  2,  2,  0,  2,  0,  2,  2,  0,  2,  2,  2,  0,  0,  2,  2,  2,
488 	 2,  0,  2,  2,  0,  2,  2,  2,  0,  0,  0,  2,  2,  0,  2,
489 	}},
490 	{{
491 	 2,  0,  2,  0,  2,  0,  2,  2,  0,  2,  0,  0,  2,  0,  2,  2,  0,
492 	 2,  2,  2,  0,  2,  0,  2,  2,  0,  0,  0,  2,  0,  0,  0,
493 	}},
494 	{{
495 	 0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,
496 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  2,  0,
497 	}},
498 	{{
499 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,
500 	 2,  2,  2,  2,  0,  2,  2,  2,  0,  2,  0,  2,  0,  2,  0,
501 	}},
502 	{{
503 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
504 	 0,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  2,  2,  0,
505 	}},
506 	{{
507 	 0,  2,  0,  2,  2,  2,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,
508 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
509 	}},
510 	{{
511 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
512 	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,
513 	}},
514 	{{
515 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
516 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  0,  0,
517 	}},
518 	{{
519 	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
520 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
521 	}},
522 	{{
523 	 2,  2,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,
524 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
525 	}},
526 	{{
527 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
528 	 0,  2,  0,  2,  0,  2,  0,  1,  1,  1,  0,  0,  0,  1,  1,
529 	}},
530 	{{
531 	 1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  2,  1,  2,  2,  0,
532 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
533 	}},
534 	{{
535 	 2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,
536 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
537 	}},
538 	{{
539 	 0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,
540 	 2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
541 	}},
542 	{{
543 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
544 	 2,  2,  0,  2,  2,  0,  2,  0,  2,  2,  0,  0,  2,  2,  2,
545 	}},
546 	{{
547 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
548 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
549 	}},
550 	{{
551 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
552 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
553 	}},
554 	{{
555 	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,
556 	 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
557 	}},
558 	{{
559 	 1,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  2,
560 	 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
561 	}},
562 	{{
563 	 2,  0,  2,  0,  2,  0,  2,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,
564 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
565 	}},
566 	{{
567 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
568 	 2,  2,  2,  2,  2,  2,  1,  1,  0,  0,  0,  0,  0,  0,  0,
569 	}},
570 	{{
571 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
572 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
573 	}},
574 	{{
575 	 0,  0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  1,  1,  1,  1,  0,  1,
576 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
577 	}},
578 	{{
579 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  0,
580 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
581 	}},
582 	{{
583 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,
584 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
585 	}},
586 	{{
587 	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
588 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,
589 	}},
590 	{{
591 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
592 	 0,  0,  0,  0,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,
593 	}},
594 	{{
595 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
596 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,
597 	}},
598 	{{
599 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
600 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
601 	}},
602 	{{
603 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,
604 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
605 	}},
606 	{{
607 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
608 	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
609 	}},
610 	{{
611 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
612 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
613 	}},
614 	{{
615 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
616 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
617 	}},
618 	{{
619 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
620 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  1,
621 	}},
622 	{{
623 	 0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
624 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
625 	}},
626 	{{
627 	 1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
628 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
629 	}},
630 	{{
631 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
632 	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,
633 	}},
634 	{{
635 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
636 	 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
637 	}},
638 	{{
639 	 1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,
640 	 1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
641 	}},
642 	{{
643 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
644 	 1,  0,  1,  1,  1,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,
645 	}},
646 	{{
647 	 0,  0,  0,  0,  0,  1,  1,  0,  0,  1,  1,  0,  0,  0,  0,  1,  1,
648 	 1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  2,  2,  1,  2,
649 	}},
650 	{{
651 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
652 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
653 	}},
654 	{{
655 	 1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,
656 	 1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
657 	}},
658 	{{
659 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
660 	 1,  0,  2,  1,  0,  2,  1,  0,  0,  1,  1,  0,  1,  0,  0,
661 	}},
662 	{{
663 	 0,  0,  0,  1,  1,  1,  1,  0,  0,  1,  1,  0,  0,  0,  1,  1,  1,
664 	 0,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  0,  1,  2,  1,
665 	}},
666 	{{
667 	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
668 	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
669 	}},
670 	{{
671 	 1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,
672 	 0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
673 	}},
674 	{{
675 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
676 	 1,  0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,
677 	}},
678 	{{
679 	 0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,  1,  1,  0,
680 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
681 	}},
682 	{{
683 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
684 	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
685 	}},
686 	{{
687 	 0,  0,  0,  0,  0,  1,  1,  0,  0,  1,  1,  0,  0,  0,  1,  1,  1,
688 	 1,  1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  2,  2,  1,  0,
689 	}},
690 	{{
691 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
692 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,
693 	}},
694 	{{
695 	 1,  1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,
696 	 1,  0,  0,  0,  0,  1,  1,  1,  0,  0,  1,  0,  1,  0,  0,
697 	}},
698 	{{
699 	 1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  0,  1,  1,  1,  0,  0,  0,
700 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,
701 	}},
702 	{{
703 	 0,  0,  0,  1,  1,  1,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  0,
704 	 1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,
705 	}},
706 	{{
707 	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
708 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
709 	}},
710 	{{
711 	 1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
712 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
713 	}},
714 	{{
715 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
716 	 0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,
717 	}},
718 	{{
719 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  1,
720 	 1,  1,  1,  1,  0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  1,
721 	}},
722 	{{
723 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
724 	 1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
725 	}},
726 	{{
727 	 1,  1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
728 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
729 	}},
730 	{{
731 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
732 	 0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,
733 	}},
734 	{{
735 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  1,
736 	 1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  1,  1,  1,  0,  1,
737 	}},
738 	{{
739 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
740 	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
741 	}},
742 	{{
743 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
744 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,
745 	}},
746 	{{
747 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  1,
748 	 1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,
749 	}},
750 	{{
751 	 0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
752 	 0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,
753 	}},
754 	{{
755 	 1,  1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
756 	 0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,
757 	}},
758 	{{
759 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
760 	 0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  1,
761 	}},
762 	{{
763 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1,  0,  0,
764 	 0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
765 	}},
766 	{{
767 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
768 	 1,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
769 	}},
770 	{{
771 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
772 	 0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,
773 	}},
774 	{{
775 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
776 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
777 	}},
778 	{{
779 	 1,  0,  0,  1,  0,  1,  1,  0,  0,  1,  0,  1,  1,  0,  1,  1,  1,
780 	 1,  1,  1,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
781 	}},
782 	{{
783 	 1,  0,  0,  0,  1,  0,  1,  0,  1,  1,  0,  0,  1,  0,  0,  0,  0,
784 	 0,  0,  2,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1,  1,
785 	}},
786 	{{
787 	 0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  1,  1,  0,
788 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  2,  2,  0,  0,
789 	}},
790 	{{
791 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,
792 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
793 	}},
794 	{{
795 	 0,  0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2,  0,  0,  0,
796 	 0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,
797 	}},
798 	{{
799 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  1,  1,  1,  1,
800 	 0,  0,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
801 	}},
802 	{{
803 	 0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
804 	 0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2,  0,  0,
805 	}},
806 	{{
807 	 0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,
808 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  1,  0,  0,
809 	}},
810 	{{
811 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
812 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
813 	}},
814 	{{
815 	 1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  2,  1,  1,  0,
816 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
817 	}},
818 	{{
819 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
820 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,
821 	}},
822 	{{
823 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
824 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
825 	}},
826 	{{
827 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  0,
828 	 0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  1,  1,
829 	}},
830 	{{
831 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  0,
832 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
833 	}},
834 	{{
835 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
836 	 1,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  1,
837 	}},
838 	{{
839 	 0,  1,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
840 	 0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
841 	}},
842 	{{
843 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
844 	 1,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
845 	}},
846 	{{
847 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
848 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
849 	}},
850 	{{
851 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
852 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
853 	}},
854 	{{
855 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
856 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
857 	}},
858 	{{
859 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
860 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
861 	}},
862 	{{
863 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
864 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
865 	}},
866 	{{
867 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
868 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
869 	}},
870 	{{
871 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
872 	 0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,
873 	}},
874 	{{
875 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
876 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
877 	}},
878 	{{
879 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
880 	 1,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
881 	}},
882 	{{
883 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
884 	 0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
885 	}},
886 	{{
887 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
888 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
889 	}},
890 	{{
891 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  0,
892 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
893 	}},
894 	{{
895 	 0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  3,  3,  3,  1,  1,  0,
896 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
897 	}},
898 	{{
899 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
900 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,
901 	}},
902 	{{
903 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,
904 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
905 	}},
906 	{{
907 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
908 	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
909 	}},
910 	{{
911 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,
912 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
913 	}},
914 	{{
915 	 0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
916 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
917 	}},
918 	{{
919 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
920 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
921 	}},
922 	{{
923 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,
924 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
925 	}},
926 	{{
927 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  0,
928 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,
929 	}},
930 	{{
931 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
932 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,
933 	}},
934 	{{
935 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
936 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
937 	}},
938 	{{
939 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
940 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
941 	}},
942 	{{
943 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
944 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,
945 	}},
946 	{{
947 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
948 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,
949 	}},
950 	{{
951 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,
952 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
953 	}},
954 	{{
955 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  0,  2,
956 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,
957 	}},
958 	{{
959 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,
960 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
961 	}},
962 	{{
963 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
964 	 0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,
965 	}},
966 	{{
967 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
968 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,
969 	}},
970 	{{
971 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
972 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,
973 	}},
974 	{{
975 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
976 	 0,  2,  0,  2,  0,  0,  0,  0,  0,  2,  2,  0,  0,  2,  0,
977 	}},
978 	{{
979 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,
980 	 0,  0,  0,  0,  0,  1,  1,  2,  2,  2,  2,  2,  2,  1,  1,
981 	}},
982 	{{
983 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,
984 	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,
985 	}},
986 	{{
987 	 0,  0,  0,  0,  0,  0,  1,  1,  2,  2,  2,  2,  2,  2,  1,  1,  0,
988 	 0,  0,  0,  0,  0,  0,  0,  1,  2,  1,  2,  1,  2,  1,  2,
989 	}},
990 	{{
991 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,
992 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  1,  1,
993 	}},
994 	{{
995 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
996 	 0,  2,  2,  2,  1,  0,  2,  2,  2,  2,  2,  2,  1,  2,  1,
997 	}},
998 	{{
999 	 1,  1,  2,  2,  2,  1,  0,  2,  2,  2,  2,  2,  2,  1,  1,  1,  0,
1000 	 0,  0,  2,  1,  1,  0,  0,  2,  2,  2,  2,  1,  1,  1,  1,
1001 	}},
1002 	{{
1003 	 0,  0,  0,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  1,  1,  1,  1,
1004 	 1,  2,  2,  2,  1,  0,  2,  2,  2,  2,  2,  2,  1,  1,  1,
1005 	}},
1006 	{{
1007 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  3,  4,  4,  1,  1,  0,
1008 	 2,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
1009 	}},
1010 	{{
1011 	 0,  0,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1012 	 0,  0,  2,  2,  0,  2,  2,  0,  0,  0,  0,  1,  0,  1,  0,
1013 	}},
1014 	{{
1015 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,
1016 	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,
1017 	}},
1018 	{{
1019 	 3,  1,  1,  1,  3,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
1020 	 2,  1,  1,  2,  2,  2,  2,  2,  2,  1,  2,  1,  1,  1,  2,
1021 	}},
1022 	{{
1023 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  1,  1,  1,  1,  2,
1024 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,
1025 	}},
1026 	{{
1027 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,
1028 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
1029 	}},
1030 	{{
1031 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1032 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1033 	}},
1034 	{{
1035 	 1,  1,  2,  2,  0,  1,  1,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,
1036 	 2,  2,  2,  0,  2,  2,  0,  0,  2,  2,  2,  2,  2,  0,  0,
1037 	}},
1038 	{{
1039 	 2,  2,  2,  0,  2,  0,  2,  0,  2,  0,  2,  2,  2,  2,  0,  2,  2,
1040 	 2,  1,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,
1041 	}},
1042 	{{
1043 	 2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  2,
1044 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1045 	}},
1046 	{{
1047 	 0,  0,  0,  1,  0,  0,  0,  0,  0,  2,  1,  1,  1,  1,  1,  1,  0,
1048 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1049 	}},
1050 	{{
1051 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  2,  2,
1052 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1053 	}},
1054 	{{
1055 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
1056 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1057 	}},
1058 	{{
1059 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,
1060 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1061 	}},
1062 	{{
1063 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1064 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1065 	}},
1066 	{{
1067 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1068 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1069 	}},
1070 	{{
1071 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1072 	 2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1073 	}},
1074 	{{
1075 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1076 	 1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1077 	}},
1078 	{{
1079 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
1080 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1081 	}},
1082 	{{
1083 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1084 	 0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1085 	}},
1086 	{{
1087 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,
1088 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1089 	}},
1090 	{{
1091 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  0,
1092 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1093 	}},
1094 	{{
1095 	 2,  0,  2,  2,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,  2,  2,  2,
1096 	 0,  2,  0,  0,  2,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,
1097 	}},
1098 	{{
1099 	 2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,
1100 	 0,  2,  0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,
1101 	}},
1102 	{{
1103 	 0,  0,  0,  0,  0,  0,  1,  0,  1,  1,  1,  1,  1,  0,  1,  1,  0,
1104 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1105 	}},
1106 	{{
1107 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  2,  0,
1108 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1109 	}},
1110 	{{
1111 	 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  1,  0,
1112 	 0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  1,
1113 	}},
1114 	{{
1115 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1116 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2,
1117 	}},
1118 	{{
1119 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1120 	 0,  0,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1121 	}},
1122 	{{
1123 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1124 	 2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1125 	}},
1126 	{{
1127 	 1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1128 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1129 	}},
1130 	{{
1131 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1132 	 0,  0,  0,  0,  0,  2,  0,  2,  2,  2,  0,  0,  0,  0,  0,
1133 	}},
1134 	{{
1135 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1136 	 0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  1,  1,  0,  0,  2,
1137 	}},
1138 	{{
1139 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1140 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
1141 	}},
1142 	{{
1143 	 1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1144 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1145 	}},
1146 	{{
1147 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
1148 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1149 	}},
1150 	{{
1151 	 2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1152 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1153 	}},
1154 	{{
1155 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  0,
1156 	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1157 	}},
1158 	{{
1159 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1160 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1161 	}},
1162 	{{
1163 	 1,  1,  1,  1,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,
1164 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1165 	}},
1166 	{{
1167 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1168 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
1169 	}},
1170 	{{
1171 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1172 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,
1173 	}},
1174 	{{
1175 	 2,  2,  1,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1176 	 2,  2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,
1177 	}},
1178 	{{
1179 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
1180 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1181 	}},
1182 	{{
1183 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,
1184 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1185 	}},
1186 	{{
1187 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1188 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1189 	}},
1190 	{{
1191 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
1192 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1193 	}},
1194 	{{
1195 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,
1196 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1197 	}},
1198 	{{
1199 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
1200 	 0,  2,  0,  2,  0,  2,  0,  1,  1,  1,  1,  1,  1,  1,  0,
1201 	}},
1202 	{{
1203 	 0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,
1204 	 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
1205 	}},
1206 	{{
1207 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
1208 	 0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  2,  0,
1209 	}},
1210 	{{
1211 	 2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  2,  0,  2,  0,  1,  2,
1212 	 0,  2,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1213 	}},
1214 	{{
1215 	 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  1,  1,  1,  1,  1,  1,
1216 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1217 	}},
1218 	{{
1219 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1220 	 1,  1,  1,  1,  1,  1,  1,  2,  2,  0,  0,  0,  0,  0,  0,
1221 	}},
1222 	{{
1223 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,
1224 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1225 	}},
1226 	{{
1227 	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,
1228 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1229 	}},
1230 	{{
1231 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1232 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1233 	}},
1234 	{{
1235 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,
1236 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,
1237 	}},
1238 	{{
1239 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
1240 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,
1241 	}},
1242 	{{
1243 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1244 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,
1245 	}},
1246 	{{
1247 	 1,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  1,  1,
1248 	 0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1249 	}},
1250 	{{
1251 	 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  1,  1,
1252 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1253 	}},
1254 	{{
1255 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
1256 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1257 	}},
1258 	{{
1259 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,
1260 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1261 	}},
1262 	{{
1263 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,
1264 	 0,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
1265 	}},
1266 	{{
1267 	 2,  0,  2,  0,  0,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,
1268 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1269 	}},
1270 	{{
1271 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,
1272 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1273 	}},
1274 	{{
1275 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1276 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,
1277 	}},
1278 	{{
1279 	 2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1280 	 1,  1,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  2,  0,  2,
1281 	}},
1282 	{{
1283 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,
1284 	 2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  1,  2,  1,
1285 	}},
1286 	{{
1287 	 2,  2,  1,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1288 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1289 	}},
1290 	{{
1291 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1292 	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1293 	}},
1294 	{{
1295 	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1296 	 1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1297 	}},
1298 	{{
1299 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1300 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,
1301 	}},
1302 	{{
1303 	 1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1304 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1305 	}},
1306 	{{
1307 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1308 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,
1309 	}},
1310 	{{
1311 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
1312 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1313 	}},
1314 	{{
1315 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,
1316 	 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1317 	}},
1318 	{{
1319 	 2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1320 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1321 	}},
1322 	{{
1323 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
1324 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  0,  1,  1,
1325 	}},
1326 	{{
1327 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  1,
1328 	 2,  1,  1,  1,  1,  1,  2,  2,  1,  1,  1,  1,  1,  1,  1,
1329 	}},
1330 	{{
1331 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1332 	 2,  2,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
1333 	}},
1334 	{{
1335 	 2,  2,  2,  2,  2,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1336 	 2,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  2,  2,  1,
1337 	}},
1338 	{{
1339 	 1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1340 	 2,  1,  0,  1,  1,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,
1341 	}},
1342 	{{
1343 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1344 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  3,
1345 	}},
1346 	{{
1347 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  1,  2,
1348 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,
1349 	}},
1350 	{{
1351 	 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1352 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  2,
1353 	}},
1354 	{{
1355 	 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1356 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,
1357 	}},
1358 	{{
1359 	 1,  1,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  1,
1360 	 1,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,  1,  1,  1,
1361 	}},
1362 	{{
1363 	 2,  2,  2,  1,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  1,  1,
1364 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1365 	}},
1366 	{{
1367 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,
1368 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1369 	}},
1370 	{{
1371 	 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1372 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1,  0,
1373 	}},
1374 	{{
1375 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,
1376 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
1377 	}},
1378 	{{
1379 	 0,  0,  0,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1380 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1381 	}},
1382 	{{
1383 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,
1384 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
1385 	}},
1386 	{{
1387 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1388 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,
1389 	}},
1390 	{{
1391 	 0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1392 	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1393 	}},
1394 	{{
1395 	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1396 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1397 	}},
1398 	{{
1399 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
1400 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1401 	}},
1402 	{{
1403 	 0,  0,  0,  0,  0,  0,  1,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,
1404 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1405 	}},
1406 	{{
1407 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1408 	 0,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  0,
1409 	}},
1410 	{{
1411 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1412 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1413 	}},
1414 	{{
1415 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1416 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,
1417 	}},
1418 	{{
1419 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1420 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,
1421 	}},
1422 	{{
1423 	 0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,
1424 	 0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
1425 	}},
1426 	{{
1427 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1428 	 0,  0,  0,  1,  1,  1,  1,  0,  0,  0,  1,  1,  1,  1,  0,
1429 	}},
1430 	{{
1431 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1432 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
1433 	}},
1434 	{{
1435 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1436 	 0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,
1437 	}},
1438 	{{
1439 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1440 	 0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
1441 	}},
1442 	{{
1443 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1444 	 0,  0,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
1445 	}},
1446 	{{
1447 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,
1448 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1449 	}},
1450 	{{
1451 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
1452 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1453 	}},
1454 	{{
1455 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
1456 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1457 	}},
1458 	{{
1459 	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1460 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1461 	}},
1462 	{{
1463 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  0,
1464 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1465 	}},
1466 	{{
1467 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1468 	 0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1469 	}},
1470 	{{
1471 	 0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1472 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1473 	}},
1474 	{{
1475 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
1476 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1477 	}},
1478 	{{
1479 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1480 	 0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1481 	}},
1482 	{{
1483 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1484 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
1485 	}},
1486 	{{
1487 	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1488 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1489 	}},
1490 	{{
1491 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,
1492 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1493 	}},
1494 	{{
1495 	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1496 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1497 	}},
1498 	{{
1499 	 0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
1500 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1501 	}},
1502 	{{
1503 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1504 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,
1505 	}},
1506 	{{
1507 	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1508 	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,
1509 	}},
1510 	{{
1511 	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1512 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
1513 	}},
1514 	{{
1515 	 0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1516 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1517 	}},
1518 	{{
1519 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1520 	 2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1521 	}},
1522 	{{
1523 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1524 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,
1525 	}},
1526 	{{
1527 	 1,  1,  2,  1,  1,  2,  2,  1,  1,  2,  2,  2,  2,  1,  2,  2,  2,
1528 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  1,  2,  2,  2,
1529 	}},
1530 	{{
1531 	 2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  1,  1,  2,  2,  2,  2,
1532 	 2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,
1533 	}},
1534 	{{
1535 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1536 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  1,
1537 	}},
1538 	{{
1539 	 2,  2,  2,  2,  2,  1,  2,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
1540 	 1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1541 	}},
1542 	{{
1543 	 2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1544 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1545 	}},
1546 	{{
1547 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,
1548 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1549 	}},
1550 	{{
1551 	 1,  2,  2,  1,  2,  1,  1,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,
1552 	 2,  2,  1,  2,  2,  2,  2,  1,  2,  1,  2,  1,  1,  1,  1,
1553 	}},
1554 	{{
1555 	 1,  1,  2,  1,  1,  1,  1,  2,  1,  2,  1,  2,  1,  2,  2,  2,  1,
1556 	 2,  2,  1,  2,  1,  1,  2,  1,  2,  1,  2,  1,  2,  1,  2,
1557 	}},
1558 	{{
1559 	 1,  2,  2,  1,  2,  1,  1,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,
1560 	 2,  2,  1,  2,  2,  2,  2,  1,  2,  2,  2,  2,  1,  2,  1,
1561 	}},
1562 	{{
1563 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,
1564 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,
1565 	}},
1566 	{{
1567 	 1,  2,  2,  2,  1,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,
1568 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,
1569 	}},
1570 	{{
1571 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1572 	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1573 	}},
1574 	{{
1575 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,
1576 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
1577 	}},
1578 	{{
1579 	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
1580 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1581 	}},
1582 	{{
1583 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  2,
1584 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1585 	}},
1586 	{{
1587 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  1,  1,  1,  1,  0,
1588 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1589 	}},
1590 	{{
1591 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
1592 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,
1593 	}},
1594 	{{
1595 	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1596 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1597 	}},
1598 	{{
1599 	 2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
1600 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1601 	}},
1602 	{{
1603 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1604 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,
1605 	}},
1606 	{{
1607 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,  1,  2,
1608 	 2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1609 	}},
1610 	{{
1611 	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
1612 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1613 	}},
1614 	{{
1615 	 0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,
1616 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1617 	}},
1618 	{{
1619 	 0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1620 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1621 	}},
1622 	{{
1623 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1624 	 0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  1,
1625 	}},
1626 	{{
1627 	 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1628 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1629 	}},
1630 	{{
1631 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1632 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,
1633 	}},
1634 	{{
1635 	 0,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
1636 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1637 	}},
1638 	{{
1639 	 2,  2,  2,  2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,
1640 	 2,  2,  2,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
1641 	}},
1642 	{{
1643 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1644 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1645 	}},
1646 	{{
1647 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  1,
1648 	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
1649 	}},
1650 };
1651 
1652 /*
1653  * Table accessor.
1654  */
1655 idn__tr46category_t
idn__sparsemap_gettr46category(unsigned long v)1656 idn__sparsemap_gettr46category(unsigned long v) {
1657 	int idx0, idx1, idx2;
1658 
1659 	if (v > UTF32_MAX)
1660 		return (idn__tr46category_unknown);
1661 	idx0 = v >> (TR46CATEGORY_BITS_1 + TR46CATEGORY_BITS_2);
1662 	idx1 = (v >> TR46CATEGORY_BITS_2) & ((1 << TR46CATEGORY_BITS_1) - 1);
1663 	idx2 = v & ((1 << TR46CATEGORY_BITS_2) - 1);
1664 	return (idn__tr46category_t) tr46category_table[tr46category_imap[tr46category_imap[idx0] + idx1]].tbl[idx2];
1665 }
1666