xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

hfsplus_decompose.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012 Vladimir Serbinenko
3  * Copyright (c) 2012 Thomas Schmitt
4  *
5  * This file is part of the libisofs project; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License version 2
7  * or later as published by the Free Software Foundation.
8  * See COPYING file for details.
9  */
10 
11 #ifdef HAVE_CONFIG_H
12 #include "../config.h"
13 #endif
14 
15 #include <string.h>
16 
17 #include "hfsplus.h"
18 
19 /*
20  Based on tn1150 (HFS+ format specification)
21 */
22 
23 
24 /* This encodes a matrix of page and character, with a number of
25  HFSPLUS_MAX_DECOMPOSE_LEN + 1 elements of 16 bit each.
26  Initially the matrix is filled with zeros.
27  1: The first element is the page number.
28  If it is equal or lower than the previous one, then the matrix is done.
29  2: The next element is the character number
30  If it is equal or lower than the previous one, the page is done. Goto 1.
31  3: The next elements are matrix elements.
32  If element 0 is encountered, then the character is done. Goto 2.
33 */
34 
35 static const uint16_t decompose_page_data[] = {
36 
37  /* page00 */
38  0x00,
39  0xc0, 0x0041, 0x0300, 0,
40  0xc1, 0x0041, 0x0301, 0,
41  0xc2, 0x0041, 0x0302, 0,
42  0xc3, 0x0041, 0x0303, 0,
43  0xc4, 0x0041, 0x0308, 0,
44  0xc5, 0x0041, 0x030A, 0,
45  0xc7, 0x0043, 0x0327, 0,
46  0xc8, 0x0045, 0x0300, 0,
47  0xc9, 0x0045, 0x0301, 0,
48  0xca, 0x0045, 0x0302, 0,
49  0xcb, 0x0045, 0x0308, 0,
50  0xcc, 0x0049, 0x0300, 0,
51  0xcd, 0x0049, 0x0301, 0,
52  0xce, 0x0049, 0x0302, 0,
53  0xcf, 0x0049, 0x0308, 0,
54  0xd1, 0x004E, 0x0303, 0,
55  0xd2, 0x004F, 0x0300, 0,
56  0xd3, 0x004F, 0x0301, 0,
57  0xd4, 0x004F, 0x0302, 0,
58  0xd5, 0x004F, 0x0303, 0,
59  0xd6, 0x004F, 0x0308, 0,
60  0xd9, 0x0055, 0x0300, 0,
61  0xda, 0x0055, 0x0301, 0,
62  0xdb, 0x0055, 0x0302, 0,
63  0xdc, 0x0055, 0x0308, 0,
64  0xdd, 0x0059, 0x0301, 0,
65  0xe0, 0x0061, 0x0300, 0,
66  0xe1, 0x0061, 0x0301, 0,
67  0xe2, 0x0061, 0x0302, 0,
68  0xe3, 0x0061, 0x0303, 0,
69  0xe4, 0x0061, 0x0308, 0,
70  0xe5, 0x0061, 0x030A, 0,
71  0xe7, 0x0063, 0x0327, 0,
72  0xe8, 0x0065, 0x0300, 0,
73  0xe9, 0x0065, 0x0301, 0,
74  0xea, 0x0065, 0x0302, 0,
75  0xeb, 0x0065, 0x0308, 0,
76  0xec, 0x0069, 0x0300, 0,
77  0xed, 0x0069, 0x0301, 0,
78  0xee, 0x0069, 0x0302, 0,
79  0xef, 0x0069, 0x0308, 0,
80  0xf1, 0x006E, 0x0303, 0,
81  0xf2, 0x006F, 0x0300, 0,
82  0xf3, 0x006F, 0x0301, 0,
83  0xf4, 0x006F, 0x0302, 0,
84  0xf5, 0x006F, 0x0303, 0,
85  0xf6, 0x006F, 0x0308, 0,
86  0xf9, 0x0075, 0x0300, 0,
87  0xfa, 0x0075, 0x0301, 0,
88  0xfb, 0x0075, 0x0302, 0,
89  0xfc, 0x0075, 0x0308, 0,
90  0xfd, 0x0079, 0x0301, 0,
91  0xff, 0x0079, 0x0308, 0,
92  0x00,
93 
94  /* page01 */
95  0x01,
96  0x00, 0x0041, 0x0304, 0,
97  0x01, 0x0061, 0x0304, 0,
98  0x02, 0x0041, 0x0306, 0,
99  0x03, 0x0061, 0x0306, 0,
100  0x04, 0x0041, 0x0328, 0,
101  0x05, 0x0061, 0x0328, 0,
102  0x06, 0x0043, 0x0301, 0,
103  0x07, 0x0063, 0x0301, 0,
104  0x08, 0x0043, 0x0302, 0,
105  0x09, 0x0063, 0x0302, 0,
106  0x0a, 0x0043, 0x0307, 0,
107  0x0b, 0x0063, 0x0307, 0,
108  0x0c, 0x0043, 0x030C, 0,
109  0x0d, 0x0063, 0x030C, 0,
110  0x0e, 0x0044, 0x030C, 0,
111  0x0f, 0x0064, 0x030C, 0,
112  0x12, 0x0045, 0x0304, 0,
113  0x13, 0x0065, 0x0304, 0,
114  0x14, 0x0045, 0x0306, 0,
115  0x15, 0x0065, 0x0306, 0,
116  0x16, 0x0045, 0x0307, 0,
117  0x17, 0x0065, 0x0307, 0,
118  0x18, 0x0045, 0x0328, 0,
119  0x19, 0x0065, 0x0328, 0,
120  0x1a, 0x0045, 0x030C, 0,
121  0x1b, 0x0065, 0x030C, 0,
122  0x1c, 0x0047, 0x0302, 0,
123  0x1d, 0x0067, 0x0302, 0,
124  0x1e, 0x0047, 0x0306, 0,
125  0x1f, 0x0067, 0x0306, 0,
126  0x20, 0x0047, 0x0307, 0,
127  0x21, 0x0067, 0x0307, 0,
128  0x22, 0x0047, 0x0327, 0,
129  0x23, 0x0067, 0x0327, 0,
130  0x24, 0x0048, 0x0302, 0,
131  0x25, 0x0068, 0x0302, 0,
132  0x28, 0x0049, 0x0303, 0,
133  0x29, 0x0069, 0x0303, 0,
134  0x2a, 0x0049, 0x0304, 0,
135  0x2b, 0x0069, 0x0304, 0,
136  0x2c, 0x0049, 0x0306, 0,
137  0x2d, 0x0069, 0x0306, 0,
138  0x2e, 0x0049, 0x0328, 0,
139  0x2f, 0x0069, 0x0328, 0,
140  0x30, 0x0049, 0x0307, 0,
141  0x34, 0x004A, 0x0302, 0,
142  0x35, 0x006A, 0x0302, 0,
143  0x36, 0x004B, 0x0327, 0,
144  0x37, 0x006B, 0x0327, 0,
145  0x39, 0x004C, 0x0301, 0,
146  0x3a, 0x006C, 0x0301, 0,
147  0x3b, 0x004C, 0x0327, 0,
148  0x3c, 0x006C, 0x0327, 0,
149  0x3d, 0x004C, 0x030C, 0,
150  0x3e, 0x006C, 0x030C, 0,
151  0x43, 0x004E, 0x0301, 0,
152  0x44, 0x006E, 0x0301, 0,
153  0x45, 0x004E, 0x0327, 0,
154  0x46, 0x006E, 0x0327, 0,
155  0x47, 0x004E, 0x030C, 0,
156  0x48, 0x006E, 0x030C, 0,
157  0x4c, 0x004F, 0x0304, 0,
158  0x4d, 0x006F, 0x0304, 0,
159  0x4e, 0x004F, 0x0306, 0,
160  0x4f, 0x006F, 0x0306, 0,
161  0x50, 0x004F, 0x030B, 0,
162  0x51, 0x006F, 0x030B, 0,
163  0x54, 0x0052, 0x0301, 0,
164  0x55, 0x0072, 0x0301, 0,
165  0x56, 0x0052, 0x0327, 0,
166  0x57, 0x0072, 0x0327, 0,
167  0x58, 0x0052, 0x030C, 0,
168  0x59, 0x0072, 0x030C, 0,
169  0x5a, 0x0053, 0x0301, 0,
170  0x5b, 0x0073, 0x0301, 0,
171  0x5c, 0x0053, 0x0302, 0,
172  0x5d, 0x0073, 0x0302, 0,
173  0x5e, 0x0053, 0x0327, 0,
174  0x5f, 0x0073, 0x0327, 0,
175  0x60, 0x0053, 0x030C, 0,
176  0x61, 0x0073, 0x030C, 0,
177  0x62, 0x0054, 0x0327, 0,
178  0x63, 0x0074, 0x0327, 0,
179  0x64, 0x0054, 0x030C, 0,
180  0x65, 0x0074, 0x030C, 0,
181  0x68, 0x0055, 0x0303, 0,
182  0x69, 0x0075, 0x0303, 0,
183  0x6a, 0x0055, 0x0304, 0,
184  0x6b, 0x0075, 0x0304, 0,
185  0x6c, 0x0055, 0x0306, 0,
186  0x6d, 0x0075, 0x0306, 0,
187  0x6e, 0x0055, 0x030A, 0,
188  0x6f, 0x0075, 0x030A, 0,
189  0x70, 0x0055, 0x030B, 0,
190  0x71, 0x0075, 0x030B, 0,
191  0x72, 0x0055, 0x0328, 0,
192  0x73, 0x0075, 0x0328, 0,
193  0x74, 0x0057, 0x0302, 0,
194  0x75, 0x0077, 0x0302, 0,
195  0x76, 0x0059, 0x0302, 0,
196  0x77, 0x0079, 0x0302, 0,
197  0x78, 0x0059, 0x0308, 0,
198  0x79, 0x005A, 0x0301, 0,
199  0x7a, 0x007A, 0x0301, 0,
200  0x7b, 0x005A, 0x0307, 0,
201  0x7c, 0x007A, 0x0307, 0,
202  0x7d, 0x005A, 0x030C, 0,
203  0x7e, 0x007A, 0x030C, 0,
204  0xa0, 0x004F, 0x031B, 0,
205  0xa1, 0x006F, 0x031B, 0,
206  0xaf, 0x0055, 0x031B, 0,
207  0xb0, 0x0075, 0x031B, 0,
208  0xcd, 0x0041, 0x030C, 0,
209  0xce, 0x0061, 0x030C, 0,
210  0xcf, 0x0049, 0x030C, 0,
211  0xd0, 0x0069, 0x030C, 0,
212  0xd1, 0x004F, 0x030C, 0,
213  0xd2, 0x006F, 0x030C, 0,
214  0xd3, 0x0055, 0x030C, 0,
215  0xd4, 0x0075, 0x030C, 0,
216  0xd5, 0x0055, 0x0308, 0x0304, 0,
217  0xd6, 0x0075, 0x0308, 0x0304, 0,
218  0xd7, 0x0055, 0x0308, 0x0301, 0,
219  0xd8, 0x0075, 0x0308, 0x0301, 0,
220  0xd9, 0x0055, 0x0308, 0x030C, 0,
221  0xda, 0x0075, 0x0308, 0x030C, 0,
222  0xdb, 0x0055, 0x0308, 0x0300, 0,
223  0xdc, 0x0075, 0x0308, 0x0300, 0,
224  0xde, 0x0041, 0x0308, 0x0304, 0,
225  0xdf, 0x0061, 0x0308, 0x0304, 0,
226  0xe0, 0x0041, 0x0307, 0x0304, 0,
227  0xe1, 0x0061, 0x0307, 0x0304, 0,
228  0xe2, 0x00C6, 0x0304, 0,
229  0xe3, 0x00E6, 0x0304, 0,
230  0xe6, 0x0047, 0x030C, 0,
231  0xe7, 0x0067, 0x030C, 0,
232  0xe8, 0x004B, 0x030C, 0,
233  0xe9, 0x006B, 0x030C, 0,
234  0xea, 0x004F, 0x0328, 0,
235  0xeb, 0x006F, 0x0328, 0,
236  0xec, 0x004F, 0x0328, 0x0304, 0,
237  0xed, 0x006F, 0x0328, 0x0304, 0,
238  0xee, 0x01B7, 0x030C, 0,
239  0xef, 0x0292, 0x030C, 0,
240  0xf0, 0x006A, 0x030C, 0,
241  0xf4, 0x0047, 0x0301, 0,
242  0xf5, 0x0067, 0x0301, 0,
243  0xfa, 0x0041, 0x030A, 0x0301, 0,
244  0xfb, 0x0061, 0x030A, 0x0301, 0,
245  0xfc, 0x00C6, 0x0301, 0,
246  0xfd, 0x00E6, 0x0301, 0,
247  0xfe, 0x00D8, 0x0301, 0,
248  0xff, 0x00F8, 0x0301, 0,
249  0x00,
250 
251  /* page02 */
252  0x02,
253  0x00, 0x0041, 0x030F, 0,
254  0x01, 0x0061, 0x030F, 0,
255  0x02, 0x0041, 0x0311, 0,
256  0x03, 0x0061, 0x0311, 0,
257  0x04, 0x0045, 0x030F, 0,
258  0x05, 0x0065, 0x030F, 0,
259  0x06, 0x0045, 0x0311, 0,
260  0x07, 0x0065, 0x0311, 0,
261  0x08, 0x0049, 0x030F, 0,
262  0x09, 0x0069, 0x030F, 0,
263  0x0a, 0x0049, 0x0311, 0,
264  0x0b, 0x0069, 0x0311, 0,
265  0x0c, 0x004F, 0x030F, 0,
266  0x0d, 0x006F, 0x030F, 0,
267  0x0e, 0x004F, 0x0311, 0,
268  0x0f, 0x006F, 0x0311, 0,
269  0x10, 0x0052, 0x030F, 0,
270  0x11, 0x0072, 0x030F, 0,
271  0x12, 0x0052, 0x0311, 0,
272  0x13, 0x0072, 0x0311, 0,
273  0x14, 0x0055, 0x030F, 0,
274  0x15, 0x0075, 0x030F, 0,
275  0x16, 0x0055, 0x0311, 0,
276  0x17, 0x0075, 0x0311, 0,
277  0x00,
278 
279  /* page03 */
280  0x03,
281  0x10, 0x0306, 0x0307, 0,
282  0x40, 0x0300, 0,
283  0x41, 0x0301, 0,
284  0x43, 0x0313, 0,
285  0x44, 0x0308, 0x030D, 0,
286  0x74, 0x02B9, 0,
287  0x7e, 0x003B, 0,
288  0x85, 0x00A8, 0x030D, 0,
289  0x86, 0x0391, 0x030D, 0,
290  0x87, 0x00B7, 0,
291  0x88, 0x0395, 0x030D, 0,
292  0x89, 0x0397, 0x030D, 0,
293  0x8a, 0x0399, 0x030D, 0,
294  0x8c, 0x039F, 0x030D, 0,
295  0x8e, 0x03A5, 0x030D, 0,
296  0x8f, 0x03A9, 0x030D, 0,
297  0x90, 0x03B9, 0x0308, 0x030D, 0,
298  0xaa, 0x0399, 0x0308, 0,
299  0xab, 0x03A5, 0x0308, 0,
300  0xac, 0x03B1, 0x030D, 0,
301  0xad, 0x03B5, 0x030D, 0,
302  0xae, 0x03B7, 0x030D, 0,
303  0xaf, 0x03B9, 0x030D, 0,
304  0xb0, 0x03C5, 0x0308, 0x030D, 0,
305  0xca, 0x03B9, 0x0308, 0,
306  0xcb, 0x03C5, 0x0308, 0,
307  0xcc, 0x03BF, 0x030D, 0,
308  0xcd, 0x03C5, 0x030D, 0,
309  0xce, 0x03C9, 0x030D, 0,
310  0xd3, 0x03D2, 0x030D, 0,
311  0xd4, 0x03D2, 0x0308, 0,
312  0x00,
313 
314  /* page04 */
315  0x04,
316  0x01, 0x0415, 0x0308, 0,
317  0x03, 0x0413, 0x0301, 0,
318  0x07, 0x0406, 0x0308, 0,
319  0x0c, 0x041A, 0x0301, 0,
320  0x0e, 0x0423, 0x0306, 0,
321  0x19, 0x0418, 0x0306, 0,
322  0x39, 0x0438, 0x0306, 0,
323  0x51, 0x0435, 0x0308, 0,
324  0x53, 0x0433, 0x0301, 0,
325  0x57, 0x0456, 0x0308, 0,
326  0x5c, 0x043A, 0x0301, 0,
327  0x5e, 0x0443, 0x0306, 0,
328  0x76, 0x0474, 0x030F, 0,
329  0x77, 0x0475, 0x030F, 0,
330  0xc1, 0x0416, 0x0306, 0,
331  0xc2, 0x0436, 0x0306, 0,
332  0xd0, 0x0410, 0x0306, 0,
333  0xd1, 0x0430, 0x0306, 0,
334  0xd2, 0x0410, 0x0308, 0,
335  0xd3, 0x0430, 0x0308, 0,
336  0xd4, 0x00C6, 0,
337  0xd5, 0x00E6, 0,
338  0xd6, 0x0415, 0x0306, 0,
339  0xd7, 0x0435, 0x0306, 0,
340  0xd8, 0x018F, 0,
341  0xd9, 0x0259, 0,
342  0xda, 0x018F, 0x0308, 0,
343  0xdb, 0x0259, 0x0308, 0,
344  0xdc, 0x0416, 0x0308, 0,
345  0xdd, 0x0436, 0x0308, 0,
346  0xde, 0x0417, 0x0308, 0,
347  0xdf, 0x0437, 0x0308, 0,
348  0xe0, 0x01B7, 0,
349  0xe1, 0x0292, 0,
350  0xe2, 0x0418, 0x0304, 0,
351  0xe3, 0x0438, 0x0304, 0,
352  0xe4, 0x0418, 0x0308, 0,
353  0xe5, 0x0438, 0x0308, 0,
354  0xe6, 0x041E, 0x0308, 0,
355  0xe7, 0x043E, 0x0308, 0,
356  0xe8, 0x019F, 0,
357  0xe9, 0x0275, 0,
358  0xea, 0x019F, 0x0308, 0,
359  0xeb, 0x0275, 0x0308, 0,
360  0xee, 0x0423, 0x0304, 0,
361  0xef, 0x0443, 0x0304, 0,
362  0xf0, 0x0423, 0x0308, 0,
363  0xf1, 0x0443, 0x0308, 0,
364  0xf2, 0x0423, 0x030B, 0,
365  0xf3, 0x0443, 0x030B, 0,
366  0xf4, 0x0427, 0x0308, 0,
367  0xf5, 0x0447, 0x0308, 0,
368  0xf8, 0x042B, 0x0308, 0,
369  0xf9, 0x044B, 0x0308, 0,
370  0x00,
371 
372  /* page09 */
373  0x09,
374  0x29, 0x0928, 0x093C, 0,
375  0x31, 0x0930, 0x093C, 0,
376  0x34, 0x0933, 0x093C, 0,
377  0x58, 0x0915, 0x093C, 0,
378  0x59, 0x0916, 0x093C, 0,
379  0x5a, 0x0917, 0x093C, 0,
380  0x5b, 0x091C, 0x093C, 0,
381  0x5c, 0x0921, 0x093C, 0,
382  0x5d, 0x0922, 0x093C, 0,
383  0x5e, 0x092B, 0x093C, 0,
384  0x5f, 0x092F, 0x093C, 0,
385  0xb0, 0x09AC, 0x09BC, 0,
386  0xcb, 0x09C7, 0x09BE, 0,
387  0xcc, 0x09C7, 0x09D7, 0,
388  0xdc, 0x09A1, 0x09BC, 0,
389  0xdd, 0x09A2, 0x09BC, 0,
390  0xdf, 0x09AF, 0x09BC, 0,
391  0x00,
392 
393  /* page0a */
394  0x0a,
395  0x59, 0x0A16, 0x0A3C, 0,
396  0x5a, 0x0A17, 0x0A3C, 0,
397  0x5b, 0x0A1C, 0x0A3C, 0,
398  0x5c, 0x0A21, 0x0A3C, 0,
399  0x5e, 0x0A2B, 0x0A3C, 0,
400  0x00,
401 
402  /* page0b */
403  0x0b,
404  0x48, 0x0B47, 0x0B56, 0,
405  0x4b, 0x0B47, 0x0B3E, 0,
406  0x4c, 0x0B47, 0x0B57, 0,
407  0x5c, 0x0B21, 0x0B3C, 0,
408  0x5d, 0x0B22, 0x0B3C, 0,
409  0x5f, 0x0B2F, 0x0B3C, 0,
410  0x94, 0x0B92, 0x0BD7, 0,
411  0xca, 0x0BC6, 0x0BBE, 0,
412  0xcb, 0x0BC7, 0x0BBE, 0,
413  0xcc, 0x0BC6, 0x0BD7, 0,
414  0x00,
415 
416  /* page0c */
417  0x0c,
418  0x48, 0x0C46, 0x0C56, 0,
419  0xc0, 0x0CBF, 0x0CD5, 0,
420  0xc7, 0x0CC6, 0x0CD5, 0,
421  0xc8, 0x0CC6, 0x0CD6, 0,
422  0xca, 0x0CC6, 0x0CC2, 0,
423  0xcb, 0x0CC6, 0x0CC2, 0x0CD5, 0,
424  0x00,
425 
426  /* page0d */
427  0x0d,
428  0x4a, 0x0D46, 0x0D3E, 0,
429  0x4b, 0x0D47, 0x0D3E, 0,
430  0x4c, 0x0D46, 0x0D57, 0,
431  0x00,
432 
433  /* page0e */
434  0x0e,
435  0x33, 0x0E4D, 0x0E32, 0,
436  0xb3, 0x0ECD, 0x0EB2, 0,
437  0x00,
438 
439  /* page0f */
440  0x0f,
441  0x43, 0x0F42, 0x0FB7, 0,
442  0x4d, 0x0F4C, 0x0FB7, 0,
443  0x52, 0x0F51, 0x0FB7, 0,
444  0x57, 0x0F56, 0x0FB7, 0,
445  0x5c, 0x0F5B, 0x0FB7, 0,
446  0x69, 0x0F40, 0x0FB5, 0,
447  0x73, 0x0F72, 0x0F71, 0,
448  0x75, 0x0F74, 0x0F71, 0,
449  0x76, 0x0FB2, 0x0F80, 0,
450  0x77, 0x0FB2, 0x0F80, 0x0F71, 0,
451  0x78, 0x0FB3, 0x0F80, 0,
452  0x79, 0x0FB3, 0x0F80, 0x0F71, 0,
453  0x81, 0x0F80, 0x0F71, 0,
454  0x93, 0x0F92, 0x0FB7, 0,
455  0x9d, 0x0F9C, 0x0FB7, 0,
456  0xa2, 0x0FA1, 0x0FB7, 0,
457  0xa7, 0x0FA6, 0x0FB7, 0,
458  0xac, 0x0FAB, 0x0FB7, 0,
459  0xb9, 0x0F90, 0x0FB5, 0,
460  0x00,
461 
462  /* page1e */
463  0x1e,
464  0x00, 0x0041, 0x0325, 0,
465  0x01, 0x0061, 0x0325, 0,
466  0x02, 0x0042, 0x0307, 0,
467  0x03, 0x0062, 0x0307, 0,
468  0x04, 0x0042, 0x0323, 0,
469  0x05, 0x0062, 0x0323, 0,
470  0x06, 0x0042, 0x0331, 0,
471  0x07, 0x0062, 0x0331, 0,
472  0x08, 0x0043, 0x0327, 0x0301, 0,
473  0x09, 0x0063, 0x0327, 0x0301, 0,
474  0x0a, 0x0044, 0x0307, 0,
475  0x0b, 0x0064, 0x0307, 0,
476  0x0c, 0x0044, 0x0323, 0,
477  0x0d, 0x0064, 0x0323, 0,
478  0x0e, 0x0044, 0x0331, 0,
479  0x0f, 0x0064, 0x0331, 0,
480  0x10, 0x0044, 0x0327, 0,
481  0x11, 0x0064, 0x0327, 0,
482  0x12, 0x0044, 0x032D, 0,
483  0x13, 0x0064, 0x032D, 0,
484  0x14, 0x0045, 0x0304, 0x0300, 0,
485  0x15, 0x0065, 0x0304, 0x0300, 0,
486  0x16, 0x0045, 0x0304, 0x0301, 0,
487  0x17, 0x0065, 0x0304, 0x0301, 0,
488  0x18, 0x0045, 0x032D, 0,
489  0x19, 0x0065, 0x032D, 0,
490  0x1a, 0x0045, 0x0330, 0,
491  0x1b, 0x0065, 0x0330, 0,
492  0x1c, 0x0045, 0x0327, 0x0306, 0,
493  0x1d, 0x0065, 0x0327, 0x0306, 0,
494  0x1e, 0x0046, 0x0307, 0,
495  0x1f, 0x0066, 0x0307, 0,
496  0x20, 0x0047, 0x0304, 0,
497  0x21, 0x0067, 0x0304, 0,
498  0x22, 0x0048, 0x0307, 0,
499  0x23, 0x0068, 0x0307, 0,
500  0x24, 0x0048, 0x0323, 0,
501  0x25, 0x0068, 0x0323, 0,
502  0x26, 0x0048, 0x0308, 0,
503  0x27, 0x0068, 0x0308, 0,
504  0x28, 0x0048, 0x0327, 0,
505  0x29, 0x0068, 0x0327, 0,
506  0x2a, 0x0048, 0x032E, 0,
507  0x2b, 0x0068, 0x032E, 0,
508  0x2c, 0x0049, 0x0330, 0,
509  0x2d, 0x0069, 0x0330, 0,
510  0x2e, 0x0049, 0x0308, 0x0301, 0,
511  0x2f, 0x0069, 0x0308, 0x0301, 0,
512  0x30, 0x004B, 0x0301, 0,
513  0x31, 0x006B, 0x0301, 0,
514  0x32, 0x004B, 0x0323, 0,
515  0x33, 0x006B, 0x0323, 0,
516  0x34, 0x004B, 0x0331, 0,
517  0x35, 0x006B, 0x0331, 0,
518  0x36, 0x004C, 0x0323, 0,
519  0x37, 0x006C, 0x0323, 0,
520  0x38, 0x004C, 0x0323, 0x0304, 0,
521  0x39, 0x006C, 0x0323, 0x0304, 0,
522  0x3a, 0x004C, 0x0331, 0,
523  0x3b, 0x006C, 0x0331, 0,
524  0x3c, 0x004C, 0x032D, 0,
525  0x3d, 0x006C, 0x032D, 0,
526  0x3e, 0x004D, 0x0301, 0,
527  0x3f, 0x006D, 0x0301, 0,
528  0x40, 0x004D, 0x0307, 0,
529  0x41, 0x006D, 0x0307, 0,
530  0x42, 0x004D, 0x0323, 0,
531  0x43, 0x006D, 0x0323, 0,
532  0x44, 0x004E, 0x0307, 0,
533  0x45, 0x006E, 0x0307, 0,
534  0x46, 0x004E, 0x0323, 0,
535  0x47, 0x006E, 0x0323, 0,
536  0x48, 0x004E, 0x0331, 0,
537  0x49, 0x006E, 0x0331, 0,
538  0x4a, 0x004E, 0x032D, 0,
539  0x4b, 0x006E, 0x032D, 0,
540  0x4c, 0x004F, 0x0303, 0x0301, 0,
541  0x4d, 0x006F, 0x0303, 0x0301, 0,
542  0x4e, 0x004F, 0x0303, 0x0308, 0,
543  0x4f, 0x006F, 0x0303, 0x0308, 0,
544  0x50, 0x004F, 0x0304, 0x0300, 0,
545  0x51, 0x006F, 0x0304, 0x0300, 0,
546  0x52, 0x004F, 0x0304, 0x0301, 0,
547  0x53, 0x006F, 0x0304, 0x0301, 0,
548  0x54, 0x0050, 0x0301, 0,
549  0x55, 0x0070, 0x0301, 0,
550  0x56, 0x0050, 0x0307, 0,
551  0x57, 0x0070, 0x0307, 0,
552  0x58, 0x0052, 0x0307, 0,
553  0x59, 0x0072, 0x0307, 0,
554  0x5a, 0x0052, 0x0323, 0,
555  0x5b, 0x0072, 0x0323, 0,
556  0x5c, 0x0052, 0x0323, 0x0304, 0,
557  0x5d, 0x0072, 0x0323, 0x0304, 0,
558  0x5e, 0x0052, 0x0331, 0,
559  0x5f, 0x0072, 0x0331, 0,
560  0x60, 0x0053, 0x0307, 0,
561  0x61, 0x0073, 0x0307, 0,
562  0x62, 0x0053, 0x0323, 0,
563  0x63, 0x0073, 0x0323, 0,
564  0x64, 0x0053, 0x0301, 0x0307, 0,
565  0x65, 0x0073, 0x0301, 0x0307, 0,
566  0x66, 0x0053, 0x030C, 0x0307, 0,
567  0x67, 0x0073, 0x030C, 0x0307, 0,
568  0x68, 0x0053, 0x0323, 0x0307, 0,
569  0x69, 0x0073, 0x0323, 0x0307, 0,
570  0x6a, 0x0054, 0x0307, 0,
571  0x6b, 0x0074, 0x0307, 0,
572  0x6c, 0x0054, 0x0323, 0,
573  0x6d, 0x0074, 0x0323, 0,
574  0x6e, 0x0054, 0x0331, 0,
575  0x6f, 0x0074, 0x0331, 0,
576  0x70, 0x0054, 0x032D, 0,
577  0x71, 0x0074, 0x032D, 0,
578  0x72, 0x0055, 0x0324, 0,
579  0x73, 0x0075, 0x0324, 0,
580  0x74, 0x0055, 0x0330, 0,
581  0x75, 0x0075, 0x0330, 0,
582  0x76, 0x0055, 0x032D, 0,
583  0x77, 0x0075, 0x032D, 0,
584  0x78, 0x0055, 0x0303, 0x0301, 0,
585  0x79, 0x0075, 0x0303, 0x0301, 0,
586  0x7a, 0x0055, 0x0304, 0x0308, 0,
587  0x7b, 0x0075, 0x0304, 0x0308, 0,
588  0x7c, 0x0056, 0x0303, 0,
589  0x7d, 0x0076, 0x0303, 0,
590  0x7e, 0x0056, 0x0323, 0,
591  0x7f, 0x0076, 0x0323, 0,
592  0x80, 0x0057, 0x0300, 0,
593  0x81, 0x0077, 0x0300, 0,
594  0x82, 0x0057, 0x0301, 0,
595  0x83, 0x0077, 0x0301, 0,
596  0x84, 0x0057, 0x0308, 0,
597  0x85, 0x0077, 0x0308, 0,
598  0x86, 0x0057, 0x0307, 0,
599  0x87, 0x0077, 0x0307, 0,
600  0x88, 0x0057, 0x0323, 0,
601  0x89, 0x0077, 0x0323, 0,
602  0x8a, 0x0058, 0x0307, 0,
603  0x8b, 0x0078, 0x0307, 0,
604  0x8c, 0x0058, 0x0308, 0,
605  0x8d, 0x0078, 0x0308, 0,
606  0x8e, 0x0059, 0x0307, 0,
607  0x8f, 0x0079, 0x0307, 0,
608  0x90, 0x005A, 0x0302, 0,
609  0x91, 0x007A, 0x0302, 0,
610  0x92, 0x005A, 0x0323, 0,
611  0x93, 0x007A, 0x0323, 0,
612  0x94, 0x005A, 0x0331, 0,
613  0x95, 0x007A, 0x0331, 0,
614  0x96, 0x0068, 0x0331, 0,
615  0x97, 0x0074, 0x0308, 0,
616  0x98, 0x0077, 0x030A, 0,
617  0x99, 0x0079, 0x030A, 0,
618  0x9b, 0x017F, 0x0307, 0,
619  0xa0, 0x0041, 0x0323, 0,
620  0xa1, 0x0061, 0x0323, 0,
621  0xa2, 0x0041, 0x0309, 0,
622  0xa3, 0x0061, 0x0309, 0,
623  0xa4, 0x0041, 0x0302, 0x0301, 0,
624  0xa5, 0x0061, 0x0302, 0x0301, 0,
625  0xa6, 0x0041, 0x0302, 0x0300, 0,
626  0xa7, 0x0061, 0x0302, 0x0300, 0,
627  0xa8, 0x0041, 0x0302, 0x0309, 0,
628  0xa9, 0x0061, 0x0302, 0x0309, 0,
629  0xaa, 0x0041, 0x0302, 0x0303, 0,
630  0xab, 0x0061, 0x0302, 0x0303, 0,
631  0xac, 0x0041, 0x0323, 0x0302, 0,
632  0xad, 0x0061, 0x0323, 0x0302, 0,
633  0xae, 0x0041, 0x0306, 0x0301, 0,
634  0xaf, 0x0061, 0x0306, 0x0301, 0,
635  0xb0, 0x0041, 0x0306, 0x0300, 0,
636  0xb1, 0x0061, 0x0306, 0x0300, 0,
637  0xb2, 0x0041, 0x0306, 0x0309, 0,
638  0xb3, 0x0061, 0x0306, 0x0309, 0,
639  0xb4, 0x0041, 0x0306, 0x0303, 0,
640  0xb5, 0x0061, 0x0306, 0x0303, 0,
641  0xb6, 0x0041, 0x0323, 0x0306, 0,
642  0xb7, 0x0061, 0x0323, 0x0306, 0,
643  0xb8, 0x0045, 0x0323, 0,
644  0xb9, 0x0065, 0x0323, 0,
645  0xba, 0x0045, 0x0309, 0,
646  0xbb, 0x0065, 0x0309, 0,
647  0xbc, 0x0045, 0x0303, 0,
648  0xbd, 0x0065, 0x0303, 0,
649  0xbe, 0x0045, 0x0302, 0x0301, 0,
650  0xbf, 0x0065, 0x0302, 0x0301, 0,
651  0xc0, 0x0045, 0x0302, 0x0300, 0,
652  0xc1, 0x0065, 0x0302, 0x0300, 0,
653  0xc2, 0x0045, 0x0302, 0x0309, 0,
654  0xc3, 0x0065, 0x0302, 0x0309, 0,
655  0xc4, 0x0045, 0x0302, 0x0303, 0,
656  0xc5, 0x0065, 0x0302, 0x0303, 0,
657  0xc6, 0x0045, 0x0323, 0x0302, 0,
658  0xc7, 0x0065, 0x0323, 0x0302, 0,
659  0xc8, 0x0049, 0x0309, 0,
660  0xc9, 0x0069, 0x0309, 0,
661  0xca, 0x0049, 0x0323, 0,
662  0xcb, 0x0069, 0x0323, 0,
663  0xcc, 0x004F, 0x0323, 0,
664  0xcd, 0x006F, 0x0323, 0,
665  0xce, 0x004F, 0x0309, 0,
666  0xcf, 0x006F, 0x0309, 0,
667  0xd0, 0x004F, 0x0302, 0x0301, 0,
668  0xd1, 0x006F, 0x0302, 0x0301, 0,
669  0xd2, 0x004F, 0x0302, 0x0300, 0,
670  0xd3, 0x006F, 0x0302, 0x0300, 0,
671  0xd4, 0x004F, 0x0302, 0x0309, 0,
672  0xd5, 0x006F, 0x0302, 0x0309, 0,
673  0xd6, 0x004F, 0x0302, 0x0303, 0,
674  0xd7, 0x006F, 0x0302, 0x0303, 0,
675  0xd8, 0x004F, 0x0323, 0x0302, 0,
676  0xd9, 0x006F, 0x0323, 0x0302, 0,
677  0xda, 0x004F, 0x031B, 0x0301, 0,
678  0xdb, 0x006F, 0x031B, 0x0301, 0,
679  0xdc, 0x004F, 0x031B, 0x0300, 0,
680  0xdd, 0x006F, 0x031B, 0x0300, 0,
681  0xde, 0x004F, 0x031B, 0x0309, 0,
682  0xdf, 0x006F, 0x031B, 0x0309, 0,
683  0xe0, 0x004F, 0x031B, 0x0303, 0,
684  0xe1, 0x006F, 0x031B, 0x0303, 0,
685  0xe2, 0x004F, 0x031B, 0x0323, 0,
686  0xe3, 0x006F, 0x031B, 0x0323, 0,
687  0xe4, 0x0055, 0x0323, 0,
688  0xe5, 0x0075, 0x0323, 0,
689  0xe6, 0x0055, 0x0309, 0,
690  0xe7, 0x0075, 0x0309, 0,
691  0xe8, 0x0055, 0x031B, 0x0301, 0,
692  0xe9, 0x0075, 0x031B, 0x0301, 0,
693  0xea, 0x0055, 0x031B, 0x0300, 0,
694  0xeb, 0x0075, 0x031B, 0x0300, 0,
695  0xec, 0x0055, 0x031B, 0x0309, 0,
696  0xed, 0x0075, 0x031B, 0x0309, 0,
697  0xee, 0x0055, 0x031B, 0x0303, 0,
698  0xef, 0x0075, 0x031B, 0x0303, 0,
699  0xf0, 0x0055, 0x031B, 0x0323, 0,
700  0xf1, 0x0075, 0x031B, 0x0323, 0,
701  0xf2, 0x0059, 0x0300, 0,
702  0xf3, 0x0079, 0x0300, 0,
703  0xf4, 0x0059, 0x0323, 0,
704  0xf5, 0x0079, 0x0323, 0,
705  0xf6, 0x0059, 0x0309, 0,
706  0xf7, 0x0079, 0x0309, 0,
707  0xf8, 0x0059, 0x0303, 0,
708  0xf9, 0x0079, 0x0303, 0,
709  0x00,
710 
711  /* page1f */
712  0x1f,
713  0x00, 0x03B1, 0x0313, 0,
714  0x01, 0x03B1, 0x0314, 0,
715  0x02, 0x03B1, 0x0313, 0x0300, 0,
716  0x03, 0x03B1, 0x0314, 0x0300, 0,
717  0x04, 0x03B1, 0x0313, 0x0301, 0,
718  0x05, 0x03B1, 0x0314, 0x0301, 0,
719  0x06, 0x03B1, 0x0313, 0x0342, 0,
720  0x07, 0x03B1, 0x0314, 0x0342, 0,
721  0x08, 0x0391, 0x0313, 0,
722  0x09, 0x0391, 0x0314, 0,
723  0x0a, 0x0391, 0x0313, 0x0300, 0,
724  0x0b, 0x0391, 0x0314, 0x0300, 0,
725  0x0c, 0x0391, 0x0313, 0x0301, 0,
726  0x0d, 0x0391, 0x0314, 0x0301, 0,
727  0x0e, 0x0391, 0x0313, 0x0342, 0,
728  0x0f, 0x0391, 0x0314, 0x0342, 0,
729  0x10, 0x03B5, 0x0313, 0,
730  0x11, 0x03B5, 0x0314, 0,
731  0x12, 0x03B5, 0x0313, 0x0300, 0,
732  0x13, 0x03B5, 0x0314, 0x0300, 0,
733  0x14, 0x03B5, 0x0313, 0x0301, 0,
734  0x15, 0x03B5, 0x0314, 0x0301, 0,
735  0x18, 0x0395, 0x0313, 0,
736  0x19, 0x0395, 0x0314, 0,
737  0x1a, 0x0395, 0x0313, 0x0300, 0,
738  0x1b, 0x0395, 0x0314, 0x0300, 0,
739  0x1c, 0x0395, 0x0313, 0x0301, 0,
740  0x1d, 0x0395, 0x0314, 0x0301, 0,
741  0x20, 0x03B7, 0x0313, 0,
742  0x21, 0x03B7, 0x0314, 0,
743  0x22, 0x03B7, 0x0313, 0x0300, 0,
744  0x23, 0x03B7, 0x0314, 0x0300, 0,
745  0x24, 0x03B7, 0x0313, 0x0301, 0,
746  0x25, 0x03B7, 0x0314, 0x0301, 0,
747  0x26, 0x03B7, 0x0313, 0x0342, 0,
748  0x27, 0x03B7, 0x0314, 0x0342, 0,
749  0x28, 0x0397, 0x0313, 0,
750  0x29, 0x0397, 0x0314, 0,
751  0x2a, 0x0397, 0x0313, 0x0300, 0,
752  0x2b, 0x0397, 0x0314, 0x0300, 0,
753  0x2c, 0x0397, 0x0313, 0x0301, 0,
754  0x2d, 0x0397, 0x0314, 0x0301, 0,
755  0x2e, 0x0397, 0x0313, 0x0342, 0,
756  0x2f, 0x0397, 0x0314, 0x0342, 0,
757  0x30, 0x03B9, 0x0313, 0,
758  0x31, 0x03B9, 0x0314, 0,
759  0x32, 0x03B9, 0x0313, 0x0300, 0,
760  0x33, 0x03B9, 0x0314, 0x0300, 0,
761  0x34, 0x03B9, 0x0313, 0x0301, 0,
762  0x35, 0x03B9, 0x0314, 0x0301, 0,
763  0x36, 0x03B9, 0x0313, 0x0342, 0,
764  0x37, 0x03B9, 0x0314, 0x0342, 0,
765  0x38, 0x0399, 0x0313, 0,
766  0x39, 0x0399, 0x0314, 0,
767  0x3a, 0x0399, 0x0313, 0x0300, 0,
768  0x3b, 0x0399, 0x0314, 0x0300, 0,
769  0x3c, 0x0399, 0x0313, 0x0301, 0,
770  0x3d, 0x0399, 0x0314, 0x0301, 0,
771  0x3e, 0x0399, 0x0313, 0x0342, 0,
772  0x3f, 0x0399, 0x0314, 0x0342, 0,
773  0x40, 0x03BF, 0x0313, 0,
774  0x41, 0x03BF, 0x0314, 0,
775  0x42, 0x03BF, 0x0313, 0x0300, 0,
776  0x43, 0x03BF, 0x0314, 0x0300, 0,
777  0x44, 0x03BF, 0x0313, 0x0301, 0,
778  0x45, 0x03BF, 0x0314, 0x0301, 0,
779  0x48, 0x039F, 0x0313, 0,
780  0x49, 0x039F, 0x0314, 0,
781  0x4a, 0x039F, 0x0313, 0x0300, 0,
782  0x4b, 0x039F, 0x0314, 0x0300, 0,
783  0x4c, 0x039F, 0x0313, 0x0301, 0,
784  0x4d, 0x039F, 0x0314, 0x0301, 0,
785  0x50, 0x03C5, 0x0313, 0,
786  0x51, 0x03C5, 0x0314, 0,
787  0x52, 0x03C5, 0x0313, 0x0300, 0,
788  0x53, 0x03C5, 0x0314, 0x0300, 0,
789  0x54, 0x03C5, 0x0313, 0x0301, 0,
790  0x55, 0x03C5, 0x0314, 0x0301, 0,
791  0x56, 0x03C5, 0x0313, 0x0342, 0,
792  0x57, 0x03C5, 0x0314, 0x0342, 0,
793  0x59, 0x03A5, 0x0314, 0,
794  0x5b, 0x03A5, 0x0314, 0x0300, 0,
795  0x5d, 0x03A5, 0x0314, 0x0301, 0,
796  0x5f, 0x03A5, 0x0314, 0x0342, 0,
797  0x60, 0x03C9, 0x0313, 0,
798  0x61, 0x03C9, 0x0314, 0,
799  0x62, 0x03C9, 0x0313, 0x0300, 0,
800  0x63, 0x03C9, 0x0314, 0x0300, 0,
801  0x64, 0x03C9, 0x0313, 0x0301, 0,
802  0x65, 0x03C9, 0x0314, 0x0301, 0,
803  0x66, 0x03C9, 0x0313, 0x0342, 0,
804  0x67, 0x03C9, 0x0314, 0x0342, 0,
805  0x68, 0x03A9, 0x0313, 0,
806  0x69, 0x03A9, 0x0314, 0,
807  0x6a, 0x03A9, 0x0313, 0x0300, 0,
808  0x6b, 0x03A9, 0x0314, 0x0300, 0,
809  0x6c, 0x03A9, 0x0313, 0x0301, 0,
810  0x6d, 0x03A9, 0x0314, 0x0301, 0,
811  0x6e, 0x03A9, 0x0313, 0x0342, 0,
812  0x6f, 0x03A9, 0x0314, 0x0342, 0,
813  0x70, 0x03B1, 0x0300, 0,
814  0x71, 0x03B1, 0x0301, 0,
815  0x72, 0x03B5, 0x0300, 0,
816  0x73, 0x03B5, 0x0301, 0,
817  0x74, 0x03B7, 0x0300, 0,
818  0x75, 0x03B7, 0x0301, 0,
819  0x76, 0x03B9, 0x0300, 0,
820  0x77, 0x03B9, 0x0301, 0,
821  0x78, 0x03BF, 0x0300, 0,
822  0x79, 0x03BF, 0x0301, 0,
823  0x7a, 0x03C5, 0x0300, 0,
824  0x7b, 0x03C5, 0x0301, 0,
825  0x7c, 0x03C9, 0x0300, 0,
826  0x7d, 0x03C9, 0x0301, 0,
827  0x80, 0x03B1, 0x0345, 0x0313, 0,
828  0x81, 0x03B1, 0x0345, 0x0314, 0,
829  0x82, 0x03B1, 0x0345, 0x0313, 0x0300, 0,
830  0x83, 0x03B1, 0x0345, 0x0314, 0x0300, 0,
831  0x84, 0x03B1, 0x0345, 0x0313, 0x0301, 0,
832  0x85, 0x03B1, 0x0345, 0x0314, 0x0301, 0,
833  0x86, 0x03B1, 0x0345, 0x0313, 0x0342, 0,
834  0x87, 0x03B1, 0x0345, 0x0314, 0x0342, 0,
835  0x88, 0x0391, 0x0345, 0x0313, 0,
836  0x89, 0x0391, 0x0345, 0x0314, 0,
837  0x8a, 0x0391, 0x0345, 0x0313, 0x0300, 0,
838  0x8b, 0x0391, 0x0345, 0x0314, 0x0300, 0,
839  0x8c, 0x0391, 0x0345, 0x0313, 0x0301, 0,
840  0x8d, 0x0391, 0x0345, 0x0314, 0x0301, 0,
841  0x8e, 0x0391, 0x0345, 0x0313, 0x0342, 0,
842  0x8f, 0x0391, 0x0345, 0x0314, 0x0342, 0,
843  0x90, 0x03B7, 0x0345, 0x0313, 0,
844  0x91, 0x03B7, 0x0345, 0x0314, 0,
845  0x92, 0x03B7, 0x0345, 0x0313, 0x0300, 0,
846  0x93, 0x03B7, 0x0345, 0x0314, 0x0300, 0,
847  0x94, 0x03B7, 0x0345, 0x0313, 0x0301, 0,
848  0x95, 0x03B7, 0x0345, 0x0314, 0x0301, 0,
849  0x96, 0x03B7, 0x0345, 0x0313, 0x0342, 0,
850  0x97, 0x03B7, 0x0345, 0x0314, 0x0342, 0,
851  0x98, 0x0397, 0x0345, 0x0313, 0,
852  0x99, 0x0397, 0x0345, 0x0314, 0,
853  0x9a, 0x0397, 0x0345, 0x0313, 0x0300, 0,
854  0x9b, 0x0397, 0x0345, 0x0314, 0x0300, 0,
855  0x9c, 0x0397, 0x0345, 0x0313, 0x0301, 0,
856  0x9d, 0x0397, 0x0345, 0x0314, 0x0301, 0,
857  0x9e, 0x0397, 0x0345, 0x0313, 0x0342, 0,
858  0x9f, 0x0397, 0x0345, 0x0314, 0x0342, 0,
859  0xa0, 0x03C9, 0x0345, 0x0313, 0,
860  0xa1, 0x03C9, 0x0345, 0x0314, 0,
861  0xa2, 0x03C9, 0x0345, 0x0313, 0x0300, 0,
862  0xa3, 0x03C9, 0x0345, 0x0314, 0x0300, 0,
863  0xa4, 0x03C9, 0x0345, 0x0313, 0x0301, 0,
864  0xa5, 0x03C9, 0x0345, 0x0314, 0x0301, 0,
865  0xa6, 0x03C9, 0x0345, 0x0313, 0x0342, 0,
866  0xa7, 0x03C9, 0x0345, 0x0314, 0x0342, 0,
867  0xa8, 0x03A9, 0x0345, 0x0313, 0,
868  0xa9, 0x03A9, 0x0345, 0x0314, 0,
869  0xaa, 0x03A9, 0x0345, 0x0313, 0x0300, 0,
870  0xab, 0x03A9, 0x0345, 0x0314, 0x0300, 0,
871  0xac, 0x03A9, 0x0345, 0x0313, 0x0301, 0,
872  0xad, 0x03A9, 0x0345, 0x0314, 0x0301, 0,
873  0xae, 0x03A9, 0x0345, 0x0313, 0x0342, 0,
874  0xaf, 0x03A9, 0x0345, 0x0314, 0x0342, 0,
875  0xb0, 0x03B1, 0x0306, 0,
876  0xb1, 0x03B1, 0x0304, 0,
877  0xb2, 0x03B1, 0x0345, 0x0300, 0,
878  0xb3, 0x03B1, 0x0345, 0,
879  0xb4, 0x03B1, 0x0345, 0x0301, 0,
880  0xb6, 0x03B1, 0x0342, 0,
881  0xb7, 0x03B1, 0x0345, 0x0342, 0,
882  0xb8, 0x0391, 0x0306, 0,
883  0xb9, 0x0391, 0x0304, 0,
884  0xba, 0x0391, 0x0300, 0,
885  0xbb, 0x0391, 0x0301, 0,
886  0xbc, 0x0391, 0x0345, 0,
887  0xbe, 0x03B9, 0,
888  0xc1, 0x00A8, 0x0342, 0,
889  0xc2, 0x03B7, 0x0345, 0x0300, 0,
890  0xc3, 0x03B7, 0x0345, 0,
891  0xc4, 0x03B7, 0x0345, 0x0301, 0,
892  0xc6, 0x03B7, 0x0342, 0,
893  0xc7, 0x03B7, 0x0345, 0x0342, 0,
894  0xc8, 0x0395, 0x0300, 0,
895  0xc9, 0x0395, 0x0301, 0,
896  0xca, 0x0397, 0x0300, 0,
897  0xcb, 0x0397, 0x0301, 0,
898  0xcc, 0x0397, 0x0345, 0,
899  0xcd, 0x1FBF, 0x0300, 0,
900  0xce, 0x1FBF, 0x0301, 0,
901  0xcf, 0x1FBF, 0x0342, 0,
902  0xd0, 0x03B9, 0x0306, 0,
903  0xd1, 0x03B9, 0x0304, 0,
904  0xd2, 0x03B9, 0x0308, 0x0300, 0,
905  0xd3, 0x03B9, 0x0308, 0x0301, 0,
906  0xd6, 0x03B9, 0x0342, 0,
907  0xd7, 0x03B9, 0x0308, 0x0342, 0,
908  0xd8, 0x0399, 0x0306, 0,
909  0xd9, 0x0399, 0x0304, 0,
910  0xda, 0x0399, 0x0300, 0,
911  0xdb, 0x0399, 0x0301, 0,
912  0xdd, 0x1FFE, 0x0300, 0,
913  0xde, 0x1FFE, 0x0301, 0,
914  0xdf, 0x1FFE, 0x0342, 0,
915  0xe0, 0x03C5, 0x0306, 0,
916  0xe1, 0x03C5, 0x0304, 0,
917  0xe2, 0x03C5, 0x0308, 0x0300, 0,
918  0xe3, 0x03C5, 0x0308, 0x0301, 0,
919  0xe4, 0x03C1, 0x0313, 0,
920  0xe5, 0x03C1, 0x0314, 0,
921  0xe6, 0x03C5, 0x0342, 0,
922  0xe7, 0x03C5, 0x0308, 0x0342, 0,
923  0xe8, 0x03A5, 0x0306, 0,
924  0xe9, 0x03A5, 0x0304, 0,
925  0xea, 0x03A5, 0x0300, 0,
926  0xeb, 0x03A5, 0x0301, 0,
927  0xec, 0x03A1, 0x0314, 0,
928  0xed, 0x00A8, 0x0300, 0,
929  0xee, 0x00A8, 0x0301, 0,
930  0xef, 0x0060, 0,
931  0xf2, 0x03C9, 0x0345, 0x0300, 0,
932  0xf3, 0x03C9, 0x0345, 0,
933  0xf4, 0x03BF, 0x0345, 0x0301, 0,
934  0xf6, 0x03C9, 0x0342, 0,
935  0xf7, 0x03C9, 0x0345, 0x0342, 0,
936  0xf8, 0x039F, 0x0300, 0,
937  0xf9, 0x039F, 0x0301, 0,
938  0xfa, 0x03A9, 0x0300, 0,
939  0xfb, 0x03A9, 0x0301, 0,
940  0xfc, 0x03A9, 0x0345, 0,
941  0xfd, 0x00B4, 0,
942  0x00,
943 
944  /* page30 */
945  0x30,
946  0x4c, 0x304B, 0x3099, 0,
947  0x4e, 0x304D, 0x3099, 0,
948  0x50, 0x304F, 0x3099, 0,
949  0x52, 0x3051, 0x3099, 0,
950  0x54, 0x3053, 0x3099, 0,
951  0x56, 0x3055, 0x3099, 0,
952  0x58, 0x3057, 0x3099, 0,
953  0x5a, 0x3059, 0x3099, 0,
954  0x5c, 0x305B, 0x3099, 0,
955  0x5e, 0x305D, 0x3099, 0,
956  0x60, 0x305F, 0x3099, 0,
957  0x62, 0x3061, 0x3099, 0,
958  0x65, 0x3064, 0x3099, 0,
959  0x67, 0x3066, 0x3099, 0,
960  0x69, 0x3068, 0x3099, 0,
961  0x70, 0x306F, 0x3099, 0,
962  0x71, 0x306F, 0x309A, 0,
963  0x73, 0x3072, 0x3099, 0,
964  0x74, 0x3072, 0x309A, 0,
965  0x76, 0x3075, 0x3099, 0,
966  0x77, 0x3075, 0x309A, 0,
967  0x79, 0x3078, 0x3099, 0,
968  0x7a, 0x3078, 0x309A, 0,
969  0x7c, 0x307B, 0x3099, 0,
970  0x7d, 0x307B, 0x309A, 0,
971  0x94, 0x3046, 0x3099, 0,
972  0x9e, 0x309D, 0x3099, 0,
973  0xac, 0x30AB, 0x3099, 0,
974  0xae, 0x30AD, 0x3099, 0,
975  0xb0, 0x30AF, 0x3099, 0,
976  0xb2, 0x30B1, 0x3099, 0,
977  0xb4, 0x30B3, 0x3099, 0,
978  0xb6, 0x30B5, 0x3099, 0,
979  0xb8, 0x30B7, 0x3099, 0,
980  0xba, 0x30B9, 0x3099, 0,
981  0xbc, 0x30BB, 0x3099, 0,
982  0xbe, 0x30BD, 0x3099, 0,
983  0xc0, 0x30BF, 0x3099, 0,
984  0xc2, 0x30C1, 0x3099, 0,
985  0xc5, 0x30C4, 0x3099, 0,
986  0xc7, 0x30C6, 0x3099, 0,
987  0xc9, 0x30C8, 0x3099, 0,
988  0xd0, 0x30CF, 0x3099, 0,
989  0xd1, 0x30CF, 0x309A, 0,
990  0xd3, 0x30D2, 0x3099, 0,
991  0xd4, 0x30D2, 0x309A, 0,
992  0xd6, 0x30D5, 0x3099, 0,
993  0xd7, 0x30D5, 0x309A, 0,
994  0xd9, 0x30D8, 0x3099, 0,
995  0xda, 0x30D8, 0x309A, 0,
996  0xdc, 0x30DB, 0x3099, 0,
997  0xdd, 0x30DB, 0x309A, 0,
998  0xf4, 0x30A6, 0x3099, 0,
999  0xf7, 0x30EF, 0x3099, 0,
1000  0xf8, 0x30F0, 0x3099, 0,
1001  0xf9, 0x30F1, 0x3099, 0,
1002  0xfa, 0x30F2, 0x3099, 0,
1003  0xfe, 0x30FD, 0x3099, 0,
1004  0x00,
1005 
1006  /* pagefb */
1007  0xfb,
1008  0x1f, 0x05F2, 0x05B7, 0,
1009  0x2a, 0x05E9, 0x05C1, 0,
1010  0x2b, 0x05E9, 0x05C2, 0,
1011  0x2c, 0x05E9, 0x05BC, 0x05C1, 0,
1012  0x2d, 0x05E9, 0x05BC, 0x05C2, 0,
1013  0x2e, 0x05D0, 0x05B7, 0,
1014  0x2f, 0x05D0, 0x05B8, 0,
1015  0x30, 0x05D0, 0x05BC, 0,
1016  0x31, 0x05D1, 0x05BC, 0,
1017  0x32, 0x05D2, 0x05BC, 0,
1018  0x33, 0x05D3, 0x05BC, 0,
1019  0x34, 0x05D4, 0x05BC, 0,
1020  0x35, 0x05D5, 0x05BC, 0,
1021  0x36, 0x05D6, 0x05BC, 0,
1022  0x38, 0x05D8, 0x05BC, 0,
1023  0x39, 0x05D9, 0x05BC, 0,
1024  0x3a, 0x05DA, 0x05BC, 0,
1025  0x3b, 0x05DB, 0x05BC, 0,
1026  0x3c, 0x05DC, 0x05BC, 0,
1027  0x3e, 0x05DE, 0x05BC, 0,
1028  0x40, 0x05E0, 0x05BC, 0,
1029  0x41, 0x05E1, 0x05BC, 0,
1030  0x43, 0x05E3, 0x05BC, 0,
1031  0x44, 0x05E4, 0x05BC, 0,
1032  0x46, 0x05E6, 0x05BC, 0,
1033  0x47, 0x05E7, 0x05BC, 0,
1034  0x48, 0x05E8, 0x05BC, 0,
1035  0x49, 0x05E9, 0x05BC, 0,
1036  0x4a, 0x05EA, 0x05BC, 0,
1037  0x4b, 0x05D5, 0x05B9, 0,
1038  0x4c, 0x05D1, 0x05BF, 0,
1039  0x4d, 0x05DB, 0x05BF, 0,
1040  0x4e, 0x05E4, 0x05BF, 0,
1041  0x00,
1042 
1043  /* end of list */
1044  0x00
1045 };
1046 
1047 #define HFSPLUS_DECOMPOSE_PAGE_SIZE (256 * (HFSPLUS_MAX_DECOMPOSE_LEN + 1))
1048 
1049 static uint16_t decompose_pages[16 * 256][HFSPLUS_MAX_DECOMPOSE_LEN + 1];
1050 
1052 
1053 
1055 {
1056  int page_idx = -1, char_idx, i;
1057  uint16_t *rpt, *page_pt, *value_pt;
1058  int page_count = 0;
1059 
1061  for (i = 0; i < 256; i++)
1062  hfsplus_decompose_pages[i] = NULL;
1063 
1064  rpt = (uint16_t *) decompose_page_data;
1065  page_pt = (uint16_t *) decompose_pages;
1066  while (1) {
1067  if (*rpt <= page_idx)
1068  break;
1069  page_count++;
1070  page_idx = *(rpt++);
1071  char_idx = -1;
1072  while (1) {
1073  if(*rpt <= char_idx)
1074  break;
1075  char_idx = *(rpt++);
1076  value_pt = page_pt + char_idx * (HFSPLUS_MAX_DECOMPOSE_LEN + 1);
1077  while (1) {
1078  if(*rpt == 0)
1079  break;
1080  *(value_pt++) = *(rpt++);
1081  }
1082  rpt++;
1083  }
1084  rpt++;
1085  hfsplus_decompose_pages[page_idx] =
1086  decompose_pages + (page_count - 1) * 256;
1087  page_pt += HFSPLUS_DECOMPOSE_PAGE_SIZE;
1088  }
1089 }
1090 
#define HFSPLUS_MAX_DECOMPOSE_LEN
Definition: hfsplus.h:187
static const uint16_t decompose_page_data[]
#define HFSPLUS_DECOMPOSE_PAGE_SIZE
void make_hfsplus_decompose_pages()
uint16_t(*[256] hfsplus_decompose_pages)[4+1]
static uint16_t decompose_pages[16 *256][4+1]