1 #define _notdef NULL
2 
3 const unsigned short fz_unicode_from_pdf_doc_encoding[256] =
4 {
5 	/* 0x0 to 0x17 except \t, \n and \r are really undefined */
6 	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
7 	0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
8 	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
9 	0x02d8, 0x02c7, 0x02c6, 0x02d9, 0x02dd, 0x02db, 0x02da, 0x02dc,
10 	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
11 	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
12 	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
13 	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
14 	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
15 	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
16 	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
17 	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
18 	0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
19 	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
20 	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
21 	0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x0000,
22 	0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x0192, 0x2044,
23 	0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,
24 	0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x0141, 0x0152, 0x0160,
25 	0x0178, 0x017d, 0x0131, 0x0142, 0x0153, 0x0161, 0x017e, 0x0000,
26 	0x20ac, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
27 	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x0000, 0x00ae, 0x00af,
28 	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
29 	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
30 	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
31 	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
32 	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
33 	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
34 	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
35 	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
36 	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
37 	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
38 };
39 
40 const char *fz_glyph_name_from_adobe_standard[256] = {
41 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
42 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
43 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
44 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
45 	"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
46 	"ampersand", "quoteright", "parenleft", "parenright", "asterisk",
47 	"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
48 	"three", "four", "five", "six", "seven", "eight", "nine", "colon",
49 	"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
50 	"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
51 	"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
52 	"backslash", "bracketright", "asciicircum", "underscore", "quoteleft",
53 	"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
54 	"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
55 	"braceleft", "bar", "braceright", "asciitilde", _notdef, _notdef,
56 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
57 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
58 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
59 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
60 	"exclamdown", "cent", "sterling", "fraction", "yen", "florin",
61 	"section", "currency", "quotesingle", "quotedblleft", "guillemotleft",
62 	"guilsinglleft", "guilsinglright", "fi", "fl", _notdef, "endash",
63 	"dagger", "daggerdbl", "periodcentered", _notdef, "paragraph",
64 	"bullet", "quotesinglbase", "quotedblbase", "quotedblright",
65 	"guillemotright", "ellipsis", "perthousand", _notdef, "questiondown",
66 	_notdef, "grave", "acute", "circumflex", "tilde", "macron", "breve",
67 	"dotaccent", "dieresis", _notdef, "ring", "cedilla", _notdef,
68 	"hungarumlaut", "ogonek", "caron", "emdash", _notdef, _notdef, _notdef,
69 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
70 	_notdef, _notdef, _notdef, _notdef, _notdef, "AE", _notdef,
71 	"ordfeminine", _notdef, _notdef, _notdef, _notdef, "Lslash", "Oslash",
72 	"OE", "ordmasculine", _notdef, _notdef, _notdef, _notdef, _notdef,
73 	"ae", _notdef, _notdef, _notdef, "dotlessi", _notdef, _notdef,
74 	"lslash", "oslash", "oe", "germandbls", _notdef, _notdef, _notdef,
75 	_notdef
76 };
77 
78 const char *fz_glyph_name_from_mac_roman[256] = {
79 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
80 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
81 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
82 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
83 	"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
84 	"ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
85 	"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
86 	"three", "four", "five", "six", "seven", "eight", "nine", "colon",
87 	"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
88 	"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
89 	"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
90 	"backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
91 	"b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
92 	"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
93 	"bar", "braceright", "asciitilde", _notdef, "Adieresis", "Aring",
94 	"Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute",
95 	"agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla",
96 	"eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave",
97 	"icircumflex", "idieresis", "ntilde", "oacute", "ograve",
98 	"ocircumflex", "odieresis", "otilde", "uacute", "ugrave",
99 	"ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling",
100 	"section", "bullet", "paragraph", "germandbls", "registered",
101 	"copyright", "trademark", "acute", "dieresis", _notdef, "AE", "Oslash",
102 	_notdef, "plusminus", _notdef, _notdef, "yen", "mu", _notdef, _notdef,
103 	_notdef, _notdef, _notdef, "ordfeminine", "ordmasculine", _notdef,
104 	"ae", "oslash", "questiondown", "exclamdown", "logicalnot", _notdef,
105 	"florin", _notdef, _notdef, "guillemotleft", "guillemotright",
106 	"ellipsis", "space", "Agrave", "Atilde", "Otilde", "OE", "oe",
107 	"endash", "emdash", "quotedblleft", "quotedblright", "quoteleft",
108 	"quoteright", "divide", _notdef, "ydieresis", "Ydieresis", "fraction",
109 	"currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
110 	"periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
111 	"Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave",
112 	"Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute",
113 	"Ocircumflex", _notdef, "Ograve", "Uacute", "Ucircumflex", "Ugrave",
114 	"dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent",
115 	"ring", "cedilla", "hungarumlaut", "ogonek", "caron"
116 };
117 
118 const char *fz_glyph_name_from_mac_expert[256] = {
119 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
120 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
121 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
122 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
123 	"space", "exclamsmall", "Hungarumlautsmall", "centoldstyle",
124 	"dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall",
125 	"parenleftsuperior", "parenrightsuperior", "twodotenleader",
126 	"onedotenleader", "comma", "hyphen", "period", "fraction",
127 	"zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle",
128 	"fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle",
129 	"eightoldstyle", "nineoldstyle", "colon", "semicolon", _notdef,
130 	"threequartersemdash", _notdef, "questionsmall", _notdef, _notdef,
131 	_notdef, _notdef, "Ethsmall", _notdef, _notdef, "onequarter",
132 	"onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths",
133 	"seveneighths", "onethird", "twothirds", _notdef, _notdef, _notdef,
134 	_notdef, _notdef, _notdef, "ff", "fi", "fl", "ffi", "ffl",
135 	"parenleftinferior", _notdef, "parenrightinferior", "Circumflexsmall",
136 	"hypheninferior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall",
137 	"Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
138 	"Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall",
139 	"Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall",
140 	"Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall",
141 	_notdef, _notdef, "asuperior", "centsuperior", _notdef, _notdef,
142 	_notdef, _notdef, "Aacutesmall", "Agravesmall", "Acircumflexsmall",
143 	"Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall",
144 	"Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall",
145 	"Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall",
146 	"Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall",
147 	"Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall",
148 	"Ucircumflexsmall", "Udieresissmall", _notdef, "eightsuperior",
149 	"fourinferior", "threeinferior", "sixinferior", "eightinferior",
150 	"seveninferior", "Scaronsmall", _notdef, "centinferior", "twoinferior",
151 	_notdef, "Dieresissmall", _notdef, "Caronsmall", "osuperior",
152 	"fiveinferior", _notdef, "commainferior", "periodinferior",
153 	"Yacutesmall", _notdef, "dollarinferior", _notdef, _notdef,
154 	"Thornsmall", _notdef, "nineinferior", "zeroinferior", "Zcaronsmall",
155 	"AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior",
156 	"Lslashsmall", _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
157 	"Cedillasmall", _notdef, _notdef, _notdef, _notdef, _notdef, "OEsmall",
158 	"figuredash", "hyphensuperior", _notdef, _notdef, _notdef, _notdef,
159 	"exclamdownsmall", _notdef, "Ydieresissmall", _notdef, "onesuperior",
160 	"twosuperior", "threesuperior", "foursuperior", "fivesuperior",
161 	"sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior",
162 	_notdef, "esuperior", "rsuperior", "tsuperior", _notdef, _notdef,
163 	"isuperior", "ssuperior", "dsuperior", _notdef, _notdef, _notdef,
164 	_notdef, _notdef, "lsuperior", "Ogoneksmall", "Brevesmall",
165 	"Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior",
166 	"periodsuperior", "Dotaccentsmall", "Ringsmall", _notdef, _notdef,
167 	_notdef, _notdef
168 };
169 
170 /* All unused codes > 32 map to 'bullet' */
171 const char *fz_glyph_name_from_win_ansi[256] = {
172 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
173 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
174 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
175 	_notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef, _notdef,
176 	"space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
177 	"ampersand", "quotesingle", "parenleft", "parenright", "asterisk",
178 	"plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
179 	"three", "four", "five", "six", "seven", "eight", "nine", "colon",
180 	"semicolon", "less", "equal", "greater", "question", "at", "A", "B",
181 	"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
182 	"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
183 	"backslash", "bracketright", "asciicircum", "underscore", "grave", "a",
184 	"b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
185 	"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft",
186 	"bar", "braceright", "asciitilde", "bullet", "Euro", "bullet",
187 	"quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger",
188 	"daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft",
189 	"OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft",
190 	"quoteright", "quotedblleft", "quotedblright", "bullet", "endash",
191 	"emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe",
192 	"bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent",
193 	"sterling", "currency", "yen", "brokenbar", "section", "dieresis",
194 	"copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen",
195 	"registered", "macron", "degree", "plusminus", "twosuperior",
196 	"threesuperior", "acute", "mu", "paragraph", "periodcentered",
197 	"cedilla", "onesuperior", "ordmasculine", "guillemotright",
198 	"onequarter", "onehalf", "threequarters", "questiondown", "Agrave",
199 	"Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE",
200 	"Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave",
201 	"Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve",
202 	"Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash",
203 	"Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn",
204 	"germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis",
205 	"aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex",
206 	"edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth",
207 	"ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis",
208 	"divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis",
209 	"yacute", "thorn", "ydieresis"
210 };
211 
212 const unsigned short fz_unicode_from_iso8859_1[256] = {
213 	0,
214 	1,
215 	2,
216 	3,
217 	4,
218 	5,
219 	6,
220 	7,
221 	8,
222 	9,
223 	10,
224 	11,
225 	12,
226 	13,
227 	14,
228 	15,
229 	16,
230 	17,
231 	18,
232 	19,
233 	20,
234 	21,
235 	22,
236 	23,
237 	24,
238 	25,
239 	26,
240 	27,
241 	28,
242 	29,
243 	30,
244 	31,
245 	32,
246 	33,
247 	34,
248 	35,
249 	36,
250 	37,
251 	38,
252 	39,
253 	40,
254 	41,
255 	42,
256 	43,
257 	44,
258 	45,
259 	46,
260 	47,
261 	48,
262 	49,
263 	50,
264 	51,
265 	52,
266 	53,
267 	54,
268 	55,
269 	56,
270 	57,
271 	58,
272 	59,
273 	60,
274 	61,
275 	62,
276 	63,
277 	64,
278 	65,
279 	66,
280 	67,
281 	68,
282 	69,
283 	70,
284 	71,
285 	72,
286 	73,
287 	74,
288 	75,
289 	76,
290 	77,
291 	78,
292 	79,
293 	80,
294 	81,
295 	82,
296 	83,
297 	84,
298 	85,
299 	86,
300 	87,
301 	88,
302 	89,
303 	90,
304 	91,
305 	92,
306 	93,
307 	94,
308 	95,
309 	96,
310 	97,
311 	98,
312 	99,
313 	100,
314 	101,
315 	102,
316 	103,
317 	104,
318 	105,
319 	106,
320 	107,
321 	108,
322 	109,
323 	110,
324 	111,
325 	112,
326 	113,
327 	114,
328 	115,
329 	116,
330 	117,
331 	118,
332 	119,
333 	120,
334 	121,
335 	122,
336 	123,
337 	124,
338 	125,
339 	126,
340 	127,
341 	128,
342 	129,
343 	130,
344 	131,
345 	132,
346 	133,
347 	134,
348 	135,
349 	136,
350 	137,
351 	138,
352 	139,
353 	140,
354 	141,
355 	142,
356 	143,
357 	144,
358 	145,
359 	146,
360 	147,
361 	148,
362 	149,
363 	150,
364 	151,
365 	152,
366 	153,
367 	154,
368 	155,
369 	156,
370 	157,
371 	158,
372 	159,
373 	160,
374 	161,
375 	162,
376 	163,
377 	164,
378 	165,
379 	166,
380 	167,
381 	168,
382 	169,
383 	170,
384 	171,
385 	172,
386 	173,
387 	174,
388 	175,
389 	176,
390 	177,
391 	178,
392 	179,
393 	180,
394 	181,
395 	182,
396 	183,
397 	184,
398 	185,
399 	186,
400 	187,
401 	188,
402 	189,
403 	190,
404 	191,
405 	192,
406 	193,
407 	194,
408 	195,
409 	196,
410 	197,
411 	198,
412 	199,
413 	200,
414 	201,
415 	202,
416 	203,
417 	204,
418 	205,
419 	206,
420 	207,
421 	208,
422 	209,
423 	210,
424 	211,
425 	212,
426 	213,
427 	214,
428 	215,
429 	216,
430 	217,
431 	218,
432 	219,
433 	220,
434 	221,
435 	222,
436 	223,
437 	224,
438 	225,
439 	226,
440 	227,
441 	228,
442 	229,
443 	230,
444 	231,
445 	232,
446 	233,
447 	234,
448 	235,
449 	236,
450 	237,
451 	238,
452 	239,
453 	240,
454 	241,
455 	242,
456 	243,
457 	244,
458 	245,
459 	246,
460 	247,
461 	248,
462 	249,
463 	250,
464 	251,
465 	252,
466 	253,
467 	254,
468 	255,
469 };
470 
471 const char *fz_glyph_name_from_iso8859_1[256] = {
472 	_notdef,
473 	_notdef,
474 	_notdef,
475 	_notdef,
476 	_notdef,
477 	_notdef,
478 	_notdef,
479 	_notdef,
480 	_notdef,
481 	_notdef,
482 	_notdef,
483 	_notdef,
484 	_notdef,
485 	_notdef,
486 	_notdef,
487 	_notdef,
488 	_notdef,
489 	_notdef,
490 	_notdef,
491 	_notdef,
492 	_notdef,
493 	_notdef,
494 	_notdef,
495 	_notdef,
496 	_notdef,
497 	_notdef,
498 	_notdef,
499 	_notdef,
500 	_notdef,
501 	_notdef,
502 	_notdef,
503 	_notdef,
504 	"space",
505 	"exclam",
506 	"quotedbl",
507 	"numbersign",
508 	"dollar",
509 	"percent",
510 	"ampersand",
511 	"quotesingle",
512 	"parenleft",
513 	"parenright",
514 	"asterisk",
515 	"plus",
516 	"comma",
517 	"hyphen",
518 	"period",
519 	"slash",
520 	"zero",
521 	"one",
522 	"two",
523 	"three",
524 	"four",
525 	"five",
526 	"six",
527 	"seven",
528 	"eight",
529 	"nine",
530 	"colon",
531 	"semicolon",
532 	"less",
533 	"equal",
534 	"greater",
535 	"question",
536 	"at",
537 	"A",
538 	"B",
539 	"C",
540 	"D",
541 	"E",
542 	"F",
543 	"G",
544 	"H",
545 	"I",
546 	"J",
547 	"K",
548 	"L",
549 	"M",
550 	"N",
551 	"O",
552 	"P",
553 	"Q",
554 	"R",
555 	"S",
556 	"T",
557 	"U",
558 	"V",
559 	"W",
560 	"X",
561 	"Y",
562 	"Z",
563 	"bracketleft",
564 	"backslash",
565 	"bracketright",
566 	"asciicircum",
567 	"underscore",
568 	"grave",
569 	"a",
570 	"b",
571 	"c",
572 	"d",
573 	"e",
574 	"f",
575 	"g",
576 	"h",
577 	"i",
578 	"j",
579 	"k",
580 	"l",
581 	"m",
582 	"n",
583 	"o",
584 	"p",
585 	"q",
586 	"r",
587 	"s",
588 	"t",
589 	"u",
590 	"v",
591 	"w",
592 	"x",
593 	"y",
594 	"z",
595 	"braceleft",
596 	"bar",
597 	"braceright",
598 	"asciitilde",
599 	"controlDEL",
600 	_notdef,
601 	_notdef,
602 	_notdef,
603 	_notdef,
604 	_notdef,
605 	_notdef,
606 	_notdef,
607 	_notdef,
608 	_notdef,
609 	_notdef,
610 	_notdef,
611 	_notdef,
612 	_notdef,
613 	_notdef,
614 	_notdef,
615 	_notdef,
616 	_notdef,
617 	_notdef,
618 	_notdef,
619 	_notdef,
620 	_notdef,
621 	_notdef,
622 	_notdef,
623 	_notdef,
624 	_notdef,
625 	_notdef,
626 	_notdef,
627 	_notdef,
628 	_notdef,
629 	_notdef,
630 	_notdef,
631 	_notdef,
632 	"nbspace",
633 	"exclamdown",
634 	"cent",
635 	"sterling",
636 	"currency",
637 	"yen",
638 	"brokenbar",
639 	"section",
640 	"dieresis",
641 	"copyright",
642 	"ordfeminine",
643 	"guillemotleft",
644 	"logicalnot",
645 	"sfthyphen",
646 	"registered",
647 	"macron",
648 	"degree",
649 	"plusminus",
650 	"twosuperior",
651 	"threesuperior",
652 	"acute",
653 	"mu",
654 	"paragraph",
655 	"periodcentered",
656 	"cedilla",
657 	"onesuperior",
658 	"ordmasculine",
659 	"guillemotright",
660 	"onequarter",
661 	"onehalf",
662 	"threequarters",
663 	"questiondown",
664 	"Agrave",
665 	"Aacute",
666 	"Acircumflex",
667 	"Atilde",
668 	"Adieresis",
669 	"Aring",
670 	"AE",
671 	"Ccedilla",
672 	"Egrave",
673 	"Eacute",
674 	"Ecircumflex",
675 	"Edieresis",
676 	"Igrave",
677 	"Iacute",
678 	"Icircumflex",
679 	"Idieresis",
680 	"Eth",
681 	"Ntilde",
682 	"Ograve",
683 	"Oacute",
684 	"Ocircumflex",
685 	"Otilde",
686 	"Odieresis",
687 	"multiply",
688 	"Oslash",
689 	"Ugrave",
690 	"Uacute",
691 	"Ucircumflex",
692 	"Udieresis",
693 	"Yacute",
694 	"Thorn",
695 	"germandbls",
696 	"agrave",
697 	"aacute",
698 	"acircumflex",
699 	"atilde",
700 	"adieresis",
701 	"aring",
702 	"ae",
703 	"ccedilla",
704 	"egrave",
705 	"eacute",
706 	"ecircumflex",
707 	"edieresis",
708 	"igrave",
709 	"iacute",
710 	"icircumflex",
711 	"idieresis",
712 	"eth",
713 	"ntilde",
714 	"ograve",
715 	"oacute",
716 	"ocircumflex",
717 	"otilde",
718 	"odieresis",
719 	"divide",
720 	"oslash",
721 	"ugrave",
722 	"uacute",
723 	"ucircumflex",
724 	"udieresis",
725 	"yacute",
726 	"thorn",
727 	"ydieresis",
728 };
729 
730 static const struct { unsigned short u, c; } iso8859_1_from_unicode[] = {
731 	{0x00a0,160},
732 	{0x00a1,161},
733 	{0x00a2,162},
734 	{0x00a3,163},
735 	{0x00a4,164},
736 	{0x00a5,165},
737 	{0x00a6,166},
738 	{0x00a7,167},
739 	{0x00a8,168},
740 	{0x00a9,169},
741 	{0x00aa,170},
742 	{0x00ab,171},
743 	{0x00ac,172},
744 	{0x00ad,173},
745 	{0x00ae,174},
746 	{0x00af,175},
747 	{0x00b0,176},
748 	{0x00b1,177},
749 	{0x00b2,178},
750 	{0x00b3,179},
751 	{0x00b4,180},
752 	{0x00b5,181},
753 	{0x00b6,182},
754 	{0x00b7,183},
755 	{0x00b8,184},
756 	{0x00b9,185},
757 	{0x00ba,186},
758 	{0x00bb,187},
759 	{0x00bc,188},
760 	{0x00bd,189},
761 	{0x00be,190},
762 	{0x00bf,191},
763 	{0x00c0,192},
764 	{0x00c1,193},
765 	{0x00c2,194},
766 	{0x00c3,195},
767 	{0x00c4,196},
768 	{0x00c5,197},
769 	{0x00c6,198},
770 	{0x00c7,199},
771 	{0x00c8,200},
772 	{0x00c9,201},
773 	{0x00ca,202},
774 	{0x00cb,203},
775 	{0x00cc,204},
776 	{0x00cd,205},
777 	{0x00ce,206},
778 	{0x00cf,207},
779 	{0x00d0,208},
780 	{0x00d1,209},
781 	{0x00d2,210},
782 	{0x00d3,211},
783 	{0x00d4,212},
784 	{0x00d5,213},
785 	{0x00d6,214},
786 	{0x00d7,215},
787 	{0x00d8,216},
788 	{0x00d9,217},
789 	{0x00da,218},
790 	{0x00db,219},
791 	{0x00dc,220},
792 	{0x00dd,221},
793 	{0x00de,222},
794 	{0x00df,223},
795 	{0x00e0,224},
796 	{0x00e1,225},
797 	{0x00e2,226},
798 	{0x00e3,227},
799 	{0x00e4,228},
800 	{0x00e5,229},
801 	{0x00e6,230},
802 	{0x00e7,231},
803 	{0x00e8,232},
804 	{0x00e9,233},
805 	{0x00ea,234},
806 	{0x00eb,235},
807 	{0x00ec,236},
808 	{0x00ed,237},
809 	{0x00ee,238},
810 	{0x00ef,239},
811 	{0x00f0,240},
812 	{0x00f1,241},
813 	{0x00f2,242},
814 	{0x00f3,243},
815 	{0x00f4,244},
816 	{0x00f5,245},
817 	{0x00f6,246},
818 	{0x00f7,247},
819 	{0x00f8,248},
820 	{0x00f9,249},
821 	{0x00fa,250},
822 	{0x00fb,251},
823 	{0x00fc,252},
824 	{0x00fd,253},
825 	{0x00fe,254},
826 	{0x00ff,255},
827 };
828 
829 const unsigned short fz_unicode_from_iso8859_7[256] = {
830 	0,
831 	1,
832 	2,
833 	3,
834 	4,
835 	5,
836 	6,
837 	7,
838 	8,
839 	9,
840 	10,
841 	11,
842 	12,
843 	13,
844 	14,
845 	15,
846 	16,
847 	17,
848 	18,
849 	19,
850 	20,
851 	21,
852 	22,
853 	23,
854 	24,
855 	25,
856 	26,
857 	27,
858 	28,
859 	29,
860 	30,
861 	31,
862 	32,
863 	33,
864 	34,
865 	35,
866 	36,
867 	37,
868 	38,
869 	39,
870 	40,
871 	41,
872 	42,
873 	43,
874 	44,
875 	45,
876 	46,
877 	47,
878 	48,
879 	49,
880 	50,
881 	51,
882 	52,
883 	53,
884 	54,
885 	55,
886 	56,
887 	57,
888 	58,
889 	59,
890 	60,
891 	61,
892 	62,
893 	63,
894 	64,
895 	65,
896 	66,
897 	67,
898 	68,
899 	69,
900 	70,
901 	71,
902 	72,
903 	73,
904 	74,
905 	75,
906 	76,
907 	77,
908 	78,
909 	79,
910 	80,
911 	81,
912 	82,
913 	83,
914 	84,
915 	85,
916 	86,
917 	87,
918 	88,
919 	89,
920 	90,
921 	91,
922 	92,
923 	93,
924 	94,
925 	95,
926 	96,
927 	97,
928 	98,
929 	99,
930 	100,
931 	101,
932 	102,
933 	103,
934 	104,
935 	105,
936 	106,
937 	107,
938 	108,
939 	109,
940 	110,
941 	111,
942 	112,
943 	113,
944 	114,
945 	115,
946 	116,
947 	117,
948 	118,
949 	119,
950 	120,
951 	121,
952 	122,
953 	123,
954 	124,
955 	125,
956 	126,
957 	127,
958 	128,
959 	129,
960 	130,
961 	131,
962 	132,
963 	133,
964 	134,
965 	135,
966 	136,
967 	137,
968 	138,
969 	139,
970 	140,
971 	141,
972 	142,
973 	143,
974 	144,
975 	145,
976 	146,
977 	147,
978 	148,
979 	149,
980 	150,
981 	151,
982 	152,
983 	153,
984 	154,
985 	155,
986 	156,
987 	157,
988 	158,
989 	159,
990 	160,
991 	8216,
992 	8217,
993 	163,
994 	8364,
995 	8367,
996 	166,
997 	167,
998 	168,
999 	169,
1000 	890,
1001 	171,
1002 	172,
1003 	173,
1004 	0,
1005 	8213,
1006 	176,
1007 	177,
1008 	178,
1009 	179,
1010 	900,
1011 	901,
1012 	902,
1013 	183,
1014 	904,
1015 	905,
1016 	906,
1017 	187,
1018 	908,
1019 	189,
1020 	910,
1021 	911,
1022 	912,
1023 	913,
1024 	914,
1025 	915,
1026 	916,
1027 	917,
1028 	918,
1029 	919,
1030 	920,
1031 	921,
1032 	922,
1033 	923,
1034 	924,
1035 	925,
1036 	926,
1037 	927,
1038 	928,
1039 	929,
1040 	0,
1041 	931,
1042 	932,
1043 	933,
1044 	934,
1045 	935,
1046 	936,
1047 	937,
1048 	938,
1049 	939,
1050 	940,
1051 	941,
1052 	942,
1053 	943,
1054 	944,
1055 	945,
1056 	946,
1057 	947,
1058 	948,
1059 	949,
1060 	950,
1061 	951,
1062 	952,
1063 	953,
1064 	954,
1065 	955,
1066 	956,
1067 	957,
1068 	958,
1069 	959,
1070 	960,
1071 	961,
1072 	962,
1073 	963,
1074 	964,
1075 	965,
1076 	966,
1077 	967,
1078 	968,
1079 	969,
1080 	970,
1081 	971,
1082 	972,
1083 	973,
1084 	974,
1085 	0,
1086 };
1087 
1088 const char *fz_glyph_name_from_iso8859_7[256] = {
1089 	_notdef,
1090 	_notdef,
1091 	_notdef,
1092 	_notdef,
1093 	_notdef,
1094 	_notdef,
1095 	_notdef,
1096 	_notdef,
1097 	_notdef,
1098 	_notdef,
1099 	_notdef,
1100 	_notdef,
1101 	_notdef,
1102 	_notdef,
1103 	_notdef,
1104 	_notdef,
1105 	_notdef,
1106 	_notdef,
1107 	_notdef,
1108 	_notdef,
1109 	_notdef,
1110 	_notdef,
1111 	_notdef,
1112 	_notdef,
1113 	_notdef,
1114 	_notdef,
1115 	_notdef,
1116 	_notdef,
1117 	_notdef,
1118 	_notdef,
1119 	_notdef,
1120 	_notdef,
1121 	"space",
1122 	"exclam",
1123 	"quotedbl",
1124 	"numbersign",
1125 	"dollar",
1126 	"percent",
1127 	"ampersand",
1128 	"quotesingle",
1129 	"parenleft",
1130 	"parenright",
1131 	"asterisk",
1132 	"plus",
1133 	"comma",
1134 	"hyphen",
1135 	"period",
1136 	"slash",
1137 	"zero",
1138 	"one",
1139 	"two",
1140 	"three",
1141 	"four",
1142 	"five",
1143 	"six",
1144 	"seven",
1145 	"eight",
1146 	"nine",
1147 	"colon",
1148 	"semicolon",
1149 	"less",
1150 	"equal",
1151 	"greater",
1152 	"question",
1153 	"at",
1154 	"A",
1155 	"B",
1156 	"C",
1157 	"D",
1158 	"E",
1159 	"F",
1160 	"G",
1161 	"H",
1162 	"I",
1163 	"J",
1164 	"K",
1165 	"L",
1166 	"M",
1167 	"N",
1168 	"O",
1169 	"P",
1170 	"Q",
1171 	"R",
1172 	"S",
1173 	"T",
1174 	"U",
1175 	"V",
1176 	"W",
1177 	"X",
1178 	"Y",
1179 	"Z",
1180 	"bracketleft",
1181 	"backslash",
1182 	"bracketright",
1183 	"asciicircum",
1184 	"underscore",
1185 	"grave",
1186 	"a",
1187 	"b",
1188 	"c",
1189 	"d",
1190 	"e",
1191 	"f",
1192 	"g",
1193 	"h",
1194 	"i",
1195 	"j",
1196 	"k",
1197 	"l",
1198 	"m",
1199 	"n",
1200 	"o",
1201 	"p",
1202 	"q",
1203 	"r",
1204 	"s",
1205 	"t",
1206 	"u",
1207 	"v",
1208 	"w",
1209 	"x",
1210 	"y",
1211 	"z",
1212 	"braceleft",
1213 	"bar",
1214 	"braceright",
1215 	"asciitilde",
1216 	"controlDEL",
1217 	_notdef,
1218 	_notdef,
1219 	_notdef,
1220 	_notdef,
1221 	_notdef,
1222 	_notdef,
1223 	_notdef,
1224 	_notdef,
1225 	_notdef,
1226 	_notdef,
1227 	_notdef,
1228 	_notdef,
1229 	_notdef,
1230 	_notdef,
1231 	_notdef,
1232 	_notdef,
1233 	_notdef,
1234 	_notdef,
1235 	_notdef,
1236 	_notdef,
1237 	_notdef,
1238 	_notdef,
1239 	_notdef,
1240 	_notdef,
1241 	_notdef,
1242 	_notdef,
1243 	_notdef,
1244 	_notdef,
1245 	_notdef,
1246 	_notdef,
1247 	_notdef,
1248 	_notdef,
1249 	"nbspace",
1250 	"quoteleft",
1251 	"quoteright",
1252 	"sterling",
1253 	"Euro",
1254 	_notdef,
1255 	"brokenbar",
1256 	"section",
1257 	"dieresis",
1258 	"copyright",
1259 	"ypogegrammeni",
1260 	"guillemotleft",
1261 	"logicalnot",
1262 	"sfthyphen",
1263 	_notdef,
1264 	"afii00208",
1265 	"degree",
1266 	"plusminus",
1267 	"twosuperior",
1268 	"threesuperior",
1269 	"tonos",
1270 	"dialytikatonos",
1271 	"Alphatonos",
1272 	"periodcentered",
1273 	"Epsilontonos",
1274 	"Etatonos",
1275 	"Iotatonos",
1276 	"guillemotright",
1277 	"Omicrontonos",
1278 	"onehalf",
1279 	"Upsilontonos",
1280 	"Omegatonos",
1281 	"iotadieresistonos",
1282 	"Alpha",
1283 	"Beta",
1284 	"Gamma",
1285 	"Deltagreek",
1286 	"Epsilon",
1287 	"Zeta",
1288 	"Eta",
1289 	"Theta",
1290 	"Iota",
1291 	"Kappa",
1292 	"Lambda",
1293 	"Mu",
1294 	"Nu",
1295 	"Xi",
1296 	"Omicron",
1297 	"Pi",
1298 	"Rho",
1299 	_notdef,
1300 	"Sigma",
1301 	"Tau",
1302 	"Upsilon",
1303 	"Phi",
1304 	"Chi",
1305 	"Psi",
1306 	"Omegagreek",
1307 	"Iotadieresis",
1308 	"Upsilondieresis",
1309 	"alphatonos",
1310 	"epsilontonos",
1311 	"etatonos",
1312 	"iotatonos",
1313 	"upsilondieresistonos",
1314 	"alpha",
1315 	"beta",
1316 	"gamma",
1317 	"delta",
1318 	"epsilon",
1319 	"zeta",
1320 	"eta",
1321 	"theta",
1322 	"iota",
1323 	"kappa",
1324 	"lambda",
1325 	"mugreek",
1326 	"nu",
1327 	"xi",
1328 	"omicron",
1329 	"pi",
1330 	"rho",
1331 	"sigma1",
1332 	"sigma",
1333 	"tau",
1334 	"upsilon",
1335 	"phi",
1336 	"chi",
1337 	"psi",
1338 	"omega",
1339 	"iotadieresis",
1340 	"upsilondieresis",
1341 	"omicrontonos",
1342 	"upsilontonos",
1343 	"omegatonos",
1344 	_notdef,
1345 };
1346 
1347 static const struct { unsigned short u, c; } iso8859_7_from_unicode[] = {
1348 	{0x00a0,160},
1349 	{0x00a3,163},
1350 	{0x00a6,166},
1351 	{0x00a7,167},
1352 	{0x00a8,168},
1353 	{0x00a9,169},
1354 	{0x00ab,171},
1355 	{0x00ac,172},
1356 	{0x00ad,173},
1357 	{0x00b0,176},
1358 	{0x00b1,177},
1359 	{0x00b2,178},
1360 	{0x00b3,179},
1361 	{0x00b7,183},
1362 	{0x00bb,187},
1363 	{0x00bd,189},
1364 	{0x037a,170},
1365 	{0x0384,180},
1366 	{0x0385,181},
1367 	{0x0386,182},
1368 	{0x0388,184},
1369 	{0x0389,185},
1370 	{0x038a,186},
1371 	{0x038c,188},
1372 	{0x038e,190},
1373 	{0x038f,191},
1374 	{0x0390,192},
1375 	{0x0391,193},
1376 	{0x0392,194},
1377 	{0x0393,195},
1378 	{0x0394,196},
1379 	{0x0395,197},
1380 	{0x0396,198},
1381 	{0x0397,199},
1382 	{0x0398,200},
1383 	{0x0399,201},
1384 	{0x039a,202},
1385 	{0x039b,203},
1386 	{0x039c,204},
1387 	{0x039d,205},
1388 	{0x039e,206},
1389 	{0x039f,207},
1390 	{0x03a0,208},
1391 	{0x03a1,209},
1392 	{0x03a3,211},
1393 	{0x03a4,212},
1394 	{0x03a5,213},
1395 	{0x03a6,214},
1396 	{0x03a7,215},
1397 	{0x03a8,216},
1398 	{0x03a9,217},
1399 	{0x03aa,218},
1400 	{0x03ab,219},
1401 	{0x03ac,220},
1402 	{0x03ad,221},
1403 	{0x03ae,222},
1404 	{0x03af,223},
1405 	{0x03b0,224},
1406 	{0x03b1,225},
1407 	{0x03b2,226},
1408 	{0x03b3,227},
1409 	{0x03b4,228},
1410 	{0x03b5,229},
1411 	{0x03b6,230},
1412 	{0x03b7,231},
1413 	{0x03b8,232},
1414 	{0x03b9,233},
1415 	{0x03ba,234},
1416 	{0x03bb,235},
1417 	{0x03bc,236},
1418 	{0x03bd,237},
1419 	{0x03be,238},
1420 	{0x03bf,239},
1421 	{0x03c0,240},
1422 	{0x03c1,241},
1423 	{0x03c2,242},
1424 	{0x03c3,243},
1425 	{0x03c4,244},
1426 	{0x03c5,245},
1427 	{0x03c6,246},
1428 	{0x03c7,247},
1429 	{0x03c8,248},
1430 	{0x03c9,249},
1431 	{0x03ca,250},
1432 	{0x03cb,251},
1433 	{0x03cc,252},
1434 	{0x03cd,253},
1435 	{0x03ce,254},
1436 	{0x2015,175},
1437 	{0x2018,161},
1438 	{0x2019,162},
1439 	{0x20ac,164},
1440 };
1441 
1442 const unsigned short fz_unicode_from_koi8u[256] = {
1443 	0,
1444 	1,
1445 	2,
1446 	3,
1447 	4,
1448 	5,
1449 	6,
1450 	7,
1451 	8,
1452 	9,
1453 	10,
1454 	11,
1455 	12,
1456 	13,
1457 	14,
1458 	15,
1459 	16,
1460 	17,
1461 	18,
1462 	19,
1463 	20,
1464 	21,
1465 	22,
1466 	23,
1467 	24,
1468 	25,
1469 	26,
1470 	27,
1471 	28,
1472 	29,
1473 	30,
1474 	31,
1475 	32,
1476 	33,
1477 	34,
1478 	35,
1479 	36,
1480 	37,
1481 	38,
1482 	39,
1483 	40,
1484 	41,
1485 	42,
1486 	43,
1487 	44,
1488 	45,
1489 	46,
1490 	47,
1491 	48,
1492 	49,
1493 	50,
1494 	51,
1495 	52,
1496 	53,
1497 	54,
1498 	55,
1499 	56,
1500 	57,
1501 	58,
1502 	59,
1503 	60,
1504 	61,
1505 	62,
1506 	63,
1507 	64,
1508 	65,
1509 	66,
1510 	67,
1511 	68,
1512 	69,
1513 	70,
1514 	71,
1515 	72,
1516 	73,
1517 	74,
1518 	75,
1519 	76,
1520 	77,
1521 	78,
1522 	79,
1523 	80,
1524 	81,
1525 	82,
1526 	83,
1527 	84,
1528 	85,
1529 	86,
1530 	87,
1531 	88,
1532 	89,
1533 	90,
1534 	91,
1535 	92,
1536 	93,
1537 	94,
1538 	95,
1539 	96,
1540 	97,
1541 	98,
1542 	99,
1543 	100,
1544 	101,
1545 	102,
1546 	103,
1547 	104,
1548 	105,
1549 	106,
1550 	107,
1551 	108,
1552 	109,
1553 	110,
1554 	111,
1555 	112,
1556 	113,
1557 	114,
1558 	115,
1559 	116,
1560 	117,
1561 	118,
1562 	119,
1563 	120,
1564 	121,
1565 	122,
1566 	123,
1567 	124,
1568 	125,
1569 	126,
1570 	127,
1571 	9472,
1572 	9474,
1573 	9484,
1574 	9488,
1575 	9492,
1576 	9496,
1577 	9500,
1578 	9508,
1579 	9516,
1580 	9524,
1581 	9532,
1582 	9600,
1583 	9604,
1584 	9608,
1585 	9612,
1586 	9616,
1587 	9617,
1588 	9618,
1589 	9619,
1590 	8992,
1591 	9632,
1592 	8729,
1593 	8730,
1594 	8776,
1595 	8804,
1596 	8805,
1597 	160,
1598 	8993,
1599 	176,
1600 	178,
1601 	183,
1602 	247,
1603 	9552,
1604 	9553,
1605 	9554,
1606 	1105,
1607 	1108,
1608 	9556,
1609 	1110,
1610 	1111,
1611 	9559,
1612 	9560,
1613 	9561,
1614 	9562,
1615 	9563,
1616 	1169,
1617 	9565,
1618 	9566,
1619 	9567,
1620 	9568,
1621 	9569,
1622 	1025,
1623 	1028,
1624 	9571,
1625 	1030,
1626 	1031,
1627 	9574,
1628 	9575,
1629 	9576,
1630 	9577,
1631 	9578,
1632 	1168,
1633 	9580,
1634 	169,
1635 	1102,
1636 	1072,
1637 	1073,
1638 	1094,
1639 	1076,
1640 	1077,
1641 	1092,
1642 	1075,
1643 	1093,
1644 	1080,
1645 	1081,
1646 	1082,
1647 	1083,
1648 	1084,
1649 	1085,
1650 	1086,
1651 	1087,
1652 	1103,
1653 	1088,
1654 	1089,
1655 	1090,
1656 	1091,
1657 	1078,
1658 	1074,
1659 	1100,
1660 	1099,
1661 	1079,
1662 	1096,
1663 	1101,
1664 	1097,
1665 	1095,
1666 	1098,
1667 	1070,
1668 	1040,
1669 	1041,
1670 	1062,
1671 	1044,
1672 	1045,
1673 	1060,
1674 	1043,
1675 	1061,
1676 	1048,
1677 	1049,
1678 	1050,
1679 	1051,
1680 	1052,
1681 	1053,
1682 	1054,
1683 	1055,
1684 	1071,
1685 	1056,
1686 	1057,
1687 	1058,
1688 	1059,
1689 	1046,
1690 	1042,
1691 	1068,
1692 	1067,
1693 	1047,
1694 	1064,
1695 	1069,
1696 	1065,
1697 	1063,
1698 	1066,
1699 };
1700 
1701 const char *fz_glyph_name_from_koi8u[256] = {
1702 	_notdef,
1703 	_notdef,
1704 	_notdef,
1705 	_notdef,
1706 	_notdef,
1707 	_notdef,
1708 	_notdef,
1709 	_notdef,
1710 	_notdef,
1711 	_notdef,
1712 	_notdef,
1713 	_notdef,
1714 	_notdef,
1715 	_notdef,
1716 	_notdef,
1717 	_notdef,
1718 	_notdef,
1719 	_notdef,
1720 	_notdef,
1721 	_notdef,
1722 	_notdef,
1723 	_notdef,
1724 	_notdef,
1725 	_notdef,
1726 	_notdef,
1727 	_notdef,
1728 	_notdef,
1729 	_notdef,
1730 	_notdef,
1731 	_notdef,
1732 	_notdef,
1733 	_notdef,
1734 	"space",
1735 	"exclam",
1736 	"quotedbl",
1737 	"numbersign",
1738 	"dollar",
1739 	"percent",
1740 	"ampersand",
1741 	"quotesingle",
1742 	"parenleft",
1743 	"parenright",
1744 	"asterisk",
1745 	"plus",
1746 	"comma",
1747 	"hyphen",
1748 	"period",
1749 	"slash",
1750 	"zero",
1751 	"one",
1752 	"two",
1753 	"three",
1754 	"four",
1755 	"five",
1756 	"six",
1757 	"seven",
1758 	"eight",
1759 	"nine",
1760 	"colon",
1761 	"semicolon",
1762 	"less",
1763 	"equal",
1764 	"greater",
1765 	"question",
1766 	"at",
1767 	"A",
1768 	"B",
1769 	"C",
1770 	"D",
1771 	"E",
1772 	"F",
1773 	"G",
1774 	"H",
1775 	"I",
1776 	"J",
1777 	"K",
1778 	"L",
1779 	"M",
1780 	"N",
1781 	"O",
1782 	"P",
1783 	"Q",
1784 	"R",
1785 	"S",
1786 	"T",
1787 	"U",
1788 	"V",
1789 	"W",
1790 	"X",
1791 	"Y",
1792 	"Z",
1793 	"bracketleft",
1794 	"backslash",
1795 	"bracketright",
1796 	"asciicircum",
1797 	"underscore",
1798 	"grave",
1799 	"a",
1800 	"b",
1801 	"c",
1802 	"d",
1803 	"e",
1804 	"f",
1805 	"g",
1806 	"h",
1807 	"i",
1808 	"j",
1809 	"k",
1810 	"l",
1811 	"m",
1812 	"n",
1813 	"o",
1814 	"p",
1815 	"q",
1816 	"r",
1817 	"s",
1818 	"t",
1819 	"u",
1820 	"v",
1821 	"w",
1822 	"x",
1823 	"y",
1824 	"z",
1825 	"braceleft",
1826 	"bar",
1827 	"braceright",
1828 	"asciitilde",
1829 	"controlDEL",
1830 	_notdef,
1831 	_notdef,
1832 	_notdef,
1833 	_notdef,
1834 	_notdef,
1835 	_notdef,
1836 	_notdef,
1837 	_notdef,
1838 	_notdef,
1839 	_notdef,
1840 	_notdef,
1841 	"upblock",
1842 	"dnblock",
1843 	"block",
1844 	"lfblock",
1845 	"rtblock",
1846 	"ltshade",
1847 	"shade",
1848 	"dkshade",
1849 	"integraltop",
1850 	"blacksquare",
1851 	"bulletoperator",
1852 	"radical",
1853 	"approxequal",
1854 	"lessequal",
1855 	"greaterequal",
1856 	"nbspace",
1857 	"integralbottom",
1858 	"degree",
1859 	"twosuperior",
1860 	"periodcentered",
1861 	"divide",
1862 	_notdef,
1863 	_notdef,
1864 	_notdef,
1865 	"afii10071",
1866 	"afii10101",
1867 	_notdef,
1868 	"afii10103",
1869 	"afii10104",
1870 	_notdef,
1871 	_notdef,
1872 	_notdef,
1873 	_notdef,
1874 	_notdef,
1875 	"afii10098",
1876 	_notdef,
1877 	_notdef,
1878 	_notdef,
1879 	_notdef,
1880 	_notdef,
1881 	"Iocyrillic",
1882 	"Ecyrillic",
1883 	_notdef,
1884 	"Icyrillic",
1885 	"Yicyrillic",
1886 	_notdef,
1887 	_notdef,
1888 	_notdef,
1889 	_notdef,
1890 	_notdef,
1891 	"Gheupturncyrillic",
1892 	_notdef,
1893 	"copyright",
1894 	"afii10096",
1895 	"acyrillic",
1896 	"afii10066",
1897 	"afii10088",
1898 	"afii10069",
1899 	"afii10070",
1900 	"afii10086",
1901 	"afii10068",
1902 	"afii10087",
1903 	"afii10074",
1904 	"afii10075",
1905 	"afii10076",
1906 	"afii10077",
1907 	"afii10078",
1908 	"afii10079",
1909 	"afii10080",
1910 	"afii10081",
1911 	"afii10097",
1912 	"afii10082",
1913 	"afii10083",
1914 	"afii10084",
1915 	"afii10085",
1916 	"afii10072",
1917 	"afii10067",
1918 	"afii10094",
1919 	"afii10093",
1920 	"afii10073",
1921 	"afii10090",
1922 	"afii10095",
1923 	"afii10091",
1924 	"afii10089",
1925 	"afii10092",
1926 	"IUcyrillic",
1927 	"Acyrillic",
1928 	"Becyrillic",
1929 	"Tsecyrillic",
1930 	"Decyrillic",
1931 	"Iecyrillic",
1932 	"Efcyrillic",
1933 	"Gecyrillic",
1934 	"Khacyrillic",
1935 	"Iicyrillic",
1936 	"Iishortcyrillic",
1937 	"Kacyrillic",
1938 	"Elcyrillic",
1939 	"Emcyrillic",
1940 	"Encyrillic",
1941 	"Ocyrillic",
1942 	"Pecyrillic",
1943 	"IAcyrillic",
1944 	"Ercyrillic",
1945 	"Escyrillic",
1946 	"Tecyrillic",
1947 	"Ucyrillic",
1948 	"Zhecyrillic",
1949 	"Vecyrillic",
1950 	"Softsigncyrillic",
1951 	"Yericyrillic",
1952 	"Zecyrillic",
1953 	"Shacyrillic",
1954 	"Ereversedcyrillic",
1955 	"Shchacyrillic",
1956 	"Checyrillic",
1957 	"Hardsigncyrillic",
1958 };
1959 
1960 static const struct { unsigned short u, c; } koi8u_from_unicode[] = {
1961 	{0x00a0,154},
1962 	{0x00a9,191},
1963 	{0x00b0,156},
1964 	{0x00b2,157},
1965 	{0x00b7,158},
1966 	{0x00f7,159},
1967 	{0x0401,179},
1968 	{0x0404,180},
1969 	{0x0406,182},
1970 	{0x0407,183},
1971 	{0x0410,225},
1972 	{0x0411,226},
1973 	{0x0412,247},
1974 	{0x0413,231},
1975 	{0x0414,228},
1976 	{0x0415,229},
1977 	{0x0416,246},
1978 	{0x0417,250},
1979 	{0x0418,233},
1980 	{0x0419,234},
1981 	{0x041a,235},
1982 	{0x041b,236},
1983 	{0x041c,237},
1984 	{0x041d,238},
1985 	{0x041e,239},
1986 	{0x041f,240},
1987 	{0x0420,242},
1988 	{0x0421,243},
1989 	{0x0422,244},
1990 	{0x0423,245},
1991 	{0x0424,230},
1992 	{0x0425,232},
1993 	{0x0426,227},
1994 	{0x0427,254},
1995 	{0x0428,251},
1996 	{0x0429,253},
1997 	{0x042a,255},
1998 	{0x042b,249},
1999 	{0x042c,248},
2000 	{0x042d,252},
2001 	{0x042e,224},
2002 	{0x042f,241},
2003 	{0x0430,193},
2004 	{0x0431,194},
2005 	{0x0432,215},
2006 	{0x0433,199},
2007 	{0x0434,196},
2008 	{0x0435,197},
2009 	{0x0436,214},
2010 	{0x0437,218},
2011 	{0x0438,201},
2012 	{0x0439,202},
2013 	{0x043a,203},
2014 	{0x043b,204},
2015 	{0x043c,205},
2016 	{0x043d,206},
2017 	{0x043e,207},
2018 	{0x043f,208},
2019 	{0x0440,210},
2020 	{0x0441,211},
2021 	{0x0442,212},
2022 	{0x0443,213},
2023 	{0x0444,198},
2024 	{0x0445,200},
2025 	{0x0446,195},
2026 	{0x0447,222},
2027 	{0x0448,219},
2028 	{0x0449,221},
2029 	{0x044a,223},
2030 	{0x044b,217},
2031 	{0x044c,216},
2032 	{0x044d,220},
2033 	{0x044e,192},
2034 	{0x044f,209},
2035 	{0x0451,163},
2036 	{0x0454,164},
2037 	{0x0456,166},
2038 	{0x0457,167},
2039 	{0x0490,189},
2040 	{0x0491,173},
2041 	{0x2219,149},
2042 	{0x221a,150},
2043 	{0x2248,151},
2044 	{0x2264,152},
2045 	{0x2265,153},
2046 	{0x2320,147},
2047 	{0x2321,155},
2048 	{0x2580,139},
2049 	{0x2584,140},
2050 	{0x2588,141},
2051 	{0x258c,142},
2052 	{0x2590,143},
2053 	{0x2591,144},
2054 	{0x2592,145},
2055 	{0x2593,146},
2056 	{0x25a0,148},
2057 };
2058 
2059 const unsigned short fz_unicode_from_windows_1250[256] = {
2060 	0,
2061 	1,
2062 	2,
2063 	3,
2064 	4,
2065 	5,
2066 	6,
2067 	7,
2068 	8,
2069 	9,
2070 	10,
2071 	11,
2072 	12,
2073 	13,
2074 	14,
2075 	15,
2076 	16,
2077 	17,
2078 	18,
2079 	19,
2080 	20,
2081 	21,
2082 	22,
2083 	23,
2084 	24,
2085 	25,
2086 	26,
2087 	27,
2088 	28,
2089 	29,
2090 	30,
2091 	31,
2092 	32,
2093 	33,
2094 	34,
2095 	35,
2096 	36,
2097 	37,
2098 	38,
2099 	39,
2100 	40,
2101 	41,
2102 	42,
2103 	43,
2104 	44,
2105 	45,
2106 	46,
2107 	47,
2108 	48,
2109 	49,
2110 	50,
2111 	51,
2112 	52,
2113 	53,
2114 	54,
2115 	55,
2116 	56,
2117 	57,
2118 	58,
2119 	59,
2120 	60,
2121 	61,
2122 	62,
2123 	63,
2124 	64,
2125 	65,
2126 	66,
2127 	67,
2128 	68,
2129 	69,
2130 	70,
2131 	71,
2132 	72,
2133 	73,
2134 	74,
2135 	75,
2136 	76,
2137 	77,
2138 	78,
2139 	79,
2140 	80,
2141 	81,
2142 	82,
2143 	83,
2144 	84,
2145 	85,
2146 	86,
2147 	87,
2148 	88,
2149 	89,
2150 	90,
2151 	91,
2152 	92,
2153 	93,
2154 	94,
2155 	95,
2156 	96,
2157 	97,
2158 	98,
2159 	99,
2160 	100,
2161 	101,
2162 	102,
2163 	103,
2164 	104,
2165 	105,
2166 	106,
2167 	107,
2168 	108,
2169 	109,
2170 	110,
2171 	111,
2172 	112,
2173 	113,
2174 	114,
2175 	115,
2176 	116,
2177 	117,
2178 	118,
2179 	119,
2180 	120,
2181 	121,
2182 	122,
2183 	123,
2184 	124,
2185 	125,
2186 	126,
2187 	127,
2188 	8364,
2189 	0,
2190 	8218,
2191 	0,
2192 	8222,
2193 	8230,
2194 	8224,
2195 	8225,
2196 	0,
2197 	8240,
2198 	352,
2199 	8249,
2200 	346,
2201 	356,
2202 	381,
2203 	377,
2204 	0,
2205 	8216,
2206 	8217,
2207 	8220,
2208 	8221,
2209 	8226,
2210 	8211,
2211 	8212,
2212 	0,
2213 	8482,
2214 	353,
2215 	8250,
2216 	347,
2217 	357,
2218 	382,
2219 	378,
2220 	160,
2221 	711,
2222 	728,
2223 	321,
2224 	164,
2225 	260,
2226 	166,
2227 	167,
2228 	168,
2229 	169,
2230 	350,
2231 	171,
2232 	172,
2233 	173,
2234 	174,
2235 	379,
2236 	176,
2237 	177,
2238 	731,
2239 	322,
2240 	180,
2241 	181,
2242 	182,
2243 	183,
2244 	184,
2245 	261,
2246 	351,
2247 	187,
2248 	317,
2249 	733,
2250 	318,
2251 	380,
2252 	340,
2253 	193,
2254 	194,
2255 	258,
2256 	196,
2257 	313,
2258 	262,
2259 	199,
2260 	268,
2261 	201,
2262 	280,
2263 	203,
2264 	282,
2265 	205,
2266 	206,
2267 	270,
2268 	272,
2269 	323,
2270 	327,
2271 	211,
2272 	212,
2273 	336,
2274 	214,
2275 	215,
2276 	344,
2277 	366,
2278 	218,
2279 	368,
2280 	220,
2281 	221,
2282 	354,
2283 	223,
2284 	341,
2285 	225,
2286 	226,
2287 	259,
2288 	228,
2289 	314,
2290 	263,
2291 	231,
2292 	269,
2293 	233,
2294 	281,
2295 	235,
2296 	283,
2297 	237,
2298 	238,
2299 	271,
2300 	273,
2301 	324,
2302 	328,
2303 	243,
2304 	244,
2305 	337,
2306 	246,
2307 	247,
2308 	345,
2309 	367,
2310 	250,
2311 	369,
2312 	252,
2313 	253,
2314 	355,
2315 	729,
2316 };
2317 
2318 const char *fz_glyph_name_from_windows_1250[256] = {
2319 	_notdef,
2320 	_notdef,
2321 	_notdef,
2322 	_notdef,
2323 	_notdef,
2324 	_notdef,
2325 	_notdef,
2326 	_notdef,
2327 	_notdef,
2328 	_notdef,
2329 	_notdef,
2330 	_notdef,
2331 	_notdef,
2332 	_notdef,
2333 	_notdef,
2334 	_notdef,
2335 	_notdef,
2336 	_notdef,
2337 	_notdef,
2338 	_notdef,
2339 	_notdef,
2340 	_notdef,
2341 	_notdef,
2342 	_notdef,
2343 	_notdef,
2344 	_notdef,
2345 	_notdef,
2346 	_notdef,
2347 	_notdef,
2348 	_notdef,
2349 	_notdef,
2350 	_notdef,
2351 	"space",
2352 	"exclam",
2353 	"quotedbl",
2354 	"numbersign",
2355 	"dollar",
2356 	"percent",
2357 	"ampersand",
2358 	"quotesingle",
2359 	"parenleft",
2360 	"parenright",
2361 	"asterisk",
2362 	"plus",
2363 	"comma",
2364 	"hyphen",
2365 	"period",
2366 	"slash",
2367 	"zero",
2368 	"one",
2369 	"two",
2370 	"three",
2371 	"four",
2372 	"five",
2373 	"six",
2374 	"seven",
2375 	"eight",
2376 	"nine",
2377 	"colon",
2378 	"semicolon",
2379 	"less",
2380 	"equal",
2381 	"greater",
2382 	"question",
2383 	"at",
2384 	"A",
2385 	"B",
2386 	"C",
2387 	"D",
2388 	"E",
2389 	"F",
2390 	"G",
2391 	"H",
2392 	"I",
2393 	"J",
2394 	"K",
2395 	"L",
2396 	"M",
2397 	"N",
2398 	"O",
2399 	"P",
2400 	"Q",
2401 	"R",
2402 	"S",
2403 	"T",
2404 	"U",
2405 	"V",
2406 	"W",
2407 	"X",
2408 	"Y",
2409 	"Z",
2410 	"bracketleft",
2411 	"backslash",
2412 	"bracketright",
2413 	"asciicircum",
2414 	"underscore",
2415 	"grave",
2416 	"a",
2417 	"b",
2418 	"c",
2419 	"d",
2420 	"e",
2421 	"f",
2422 	"g",
2423 	"h",
2424 	"i",
2425 	"j",
2426 	"k",
2427 	"l",
2428 	"m",
2429 	"n",
2430 	"o",
2431 	"p",
2432 	"q",
2433 	"r",
2434 	"s",
2435 	"t",
2436 	"u",
2437 	"v",
2438 	"w",
2439 	"x",
2440 	"y",
2441 	"z",
2442 	"braceleft",
2443 	"bar",
2444 	"braceright",
2445 	"asciitilde",
2446 	"controlDEL",
2447 	"Euro",
2448 	_notdef,
2449 	"quotesinglbase",
2450 	_notdef,
2451 	"quotedblbase",
2452 	"ellipsis",
2453 	"dagger",
2454 	"daggerdbl",
2455 	_notdef,
2456 	"perthousand",
2457 	"Scaron",
2458 	"guilsinglleft",
2459 	"Sacute",
2460 	"Tcaron",
2461 	"Zcaron",
2462 	"Zacute",
2463 	_notdef,
2464 	"quoteleft",
2465 	"quoteright",
2466 	"quotedblleft",
2467 	"quotedblright",
2468 	"bullet",
2469 	"endash",
2470 	"emdash",
2471 	_notdef,
2472 	"trademark",
2473 	"scaron",
2474 	"guilsinglright",
2475 	"sacute",
2476 	"tcaron",
2477 	"zcaron",
2478 	"zacute",
2479 	"nbspace",
2480 	"caron",
2481 	"breve",
2482 	"Lslash",
2483 	"currency",
2484 	"Aogonek",
2485 	"brokenbar",
2486 	"section",
2487 	"dieresis",
2488 	"copyright",
2489 	"Scedilla",
2490 	"guillemotleft",
2491 	"logicalnot",
2492 	"sfthyphen",
2493 	"registered",
2494 	"Zdot",
2495 	"degree",
2496 	"plusminus",
2497 	"ogonek",
2498 	"lslash",
2499 	"acute",
2500 	"mu",
2501 	"paragraph",
2502 	"periodcentered",
2503 	"cedilla",
2504 	"aogonek",
2505 	"scedilla",
2506 	"guillemotright",
2507 	"Lcaron",
2508 	"hungarumlaut",
2509 	"lcaron",
2510 	"zdot",
2511 	"Racute",
2512 	"Aacute",
2513 	"Acircumflex",
2514 	"Abreve",
2515 	"Adieresis",
2516 	"Lacute",
2517 	"Cacute",
2518 	"Ccedilla",
2519 	"Ccaron",
2520 	"Eacute",
2521 	"Eogonek",
2522 	"Edieresis",
2523 	"Ecaron",
2524 	"Iacute",
2525 	"Icircumflex",
2526 	"Dcaron",
2527 	"Dcroat",
2528 	"Nacute",
2529 	"Ncaron",
2530 	"Oacute",
2531 	"Ocircumflex",
2532 	"Odblacute",
2533 	"Odieresis",
2534 	"multiply",
2535 	"Rcaron",
2536 	"Uring",
2537 	"Uacute",
2538 	"Udblacute",
2539 	"Udieresis",
2540 	"Yacute",
2541 	"Tcedilla",
2542 	"germandbls",
2543 	"racute",
2544 	"aacute",
2545 	"acircumflex",
2546 	"abreve",
2547 	"adieresis",
2548 	"lacute",
2549 	"cacute",
2550 	"ccedilla",
2551 	"ccaron",
2552 	"eacute",
2553 	"eogonek",
2554 	"edieresis",
2555 	"ecaron",
2556 	"iacute",
2557 	"icircumflex",
2558 	"dcaron",
2559 	"dcroat",
2560 	"nacute",
2561 	"ncaron",
2562 	"oacute",
2563 	"ocircumflex",
2564 	"odblacute",
2565 	"odieresis",
2566 	"divide",
2567 	"rcaron",
2568 	"uring",
2569 	"uacute",
2570 	"udblacute",
2571 	"udieresis",
2572 	"yacute",
2573 	"tcedilla",
2574 	"dotaccent",
2575 };
2576 
2577 static const struct { unsigned short u, c; } windows_1250_from_unicode[] = {
2578 	{0x00a0,160},
2579 	{0x00a4,164},
2580 	{0x00a6,166},
2581 	{0x00a7,167},
2582 	{0x00a8,168},
2583 	{0x00a9,169},
2584 	{0x00ab,171},
2585 	{0x00ac,172},
2586 	{0x00ad,173},
2587 	{0x00ae,174},
2588 	{0x00b0,176},
2589 	{0x00b1,177},
2590 	{0x00b4,180},
2591 	{0x00b5,181},
2592 	{0x00b6,182},
2593 	{0x00b7,183},
2594 	{0x00b8,184},
2595 	{0x00bb,187},
2596 	{0x00c1,193},
2597 	{0x00c2,194},
2598 	{0x00c4,196},
2599 	{0x00c7,199},
2600 	{0x00c9,201},
2601 	{0x00cb,203},
2602 	{0x00cd,205},
2603 	{0x00ce,206},
2604 	{0x00d3,211},
2605 	{0x00d4,212},
2606 	{0x00d6,214},
2607 	{0x00d7,215},
2608 	{0x00da,218},
2609 	{0x00dc,220},
2610 	{0x00dd,221},
2611 	{0x00df,223},
2612 	{0x00e1,225},
2613 	{0x00e2,226},
2614 	{0x00e4,228},
2615 	{0x00e7,231},
2616 	{0x00e9,233},
2617 	{0x00eb,235},
2618 	{0x00ed,237},
2619 	{0x00ee,238},
2620 	{0x00f3,243},
2621 	{0x00f4,244},
2622 	{0x00f6,246},
2623 	{0x00f7,247},
2624 	{0x00fa,250},
2625 	{0x00fc,252},
2626 	{0x00fd,253},
2627 	{0x0102,195},
2628 	{0x0103,227},
2629 	{0x0104,165},
2630 	{0x0105,185},
2631 	{0x0106,198},
2632 	{0x0107,230},
2633 	{0x010c,200},
2634 	{0x010d,232},
2635 	{0x010e,207},
2636 	{0x010f,239},
2637 	{0x0110,208},
2638 	{0x0111,240},
2639 	{0x0118,202},
2640 	{0x0119,234},
2641 	{0x011a,204},
2642 	{0x011b,236},
2643 	{0x0139,197},
2644 	{0x013a,229},
2645 	{0x013d,188},
2646 	{0x013e,190},
2647 	{0x0141,163},
2648 	{0x0142,179},
2649 	{0x0143,209},
2650 	{0x0144,241},
2651 	{0x0147,210},
2652 	{0x0148,242},
2653 	{0x0150,213},
2654 	{0x0151,245},
2655 	{0x0154,192},
2656 	{0x0155,224},
2657 	{0x0158,216},
2658 	{0x0159,248},
2659 	{0x015a,140},
2660 	{0x015b,156},
2661 	{0x015e,170},
2662 	{0x015f,186},
2663 	{0x0160,138},
2664 	{0x0161,154},
2665 	{0x0162,222},
2666 	{0x0163,254},
2667 	{0x0164,141},
2668 	{0x0165,157},
2669 	{0x016e,217},
2670 	{0x016f,249},
2671 	{0x0170,219},
2672 	{0x0171,251},
2673 	{0x0179,143},
2674 	{0x017a,159},
2675 	{0x017b,175},
2676 	{0x017c,191},
2677 	{0x017d,142},
2678 	{0x017e,158},
2679 	{0x02c7,161},
2680 	{0x02d8,162},
2681 	{0x02d9,255},
2682 	{0x02db,178},
2683 	{0x02dd,189},
2684 	{0x2013,150},
2685 	{0x2014,151},
2686 	{0x2018,145},
2687 	{0x2019,146},
2688 	{0x201a,130},
2689 	{0x201c,147},
2690 	{0x201d,148},
2691 	{0x201e,132},
2692 	{0x2020,134},
2693 	{0x2021,135},
2694 	{0x2022,149},
2695 	{0x2026,133},
2696 	{0x2030,137},
2697 	{0x2039,139},
2698 	{0x203a,155},
2699 	{0x20ac,128},
2700 	{0x2122,153},
2701 };
2702 
2703 const unsigned short fz_unicode_from_windows_1251[256] = {
2704 	0,
2705 	1,
2706 	2,
2707 	3,
2708 	4,
2709 	5,
2710 	6,
2711 	7,
2712 	8,
2713 	9,
2714 	10,
2715 	11,
2716 	12,
2717 	13,
2718 	14,
2719 	15,
2720 	16,
2721 	17,
2722 	18,
2723 	19,
2724 	20,
2725 	21,
2726 	22,
2727 	23,
2728 	24,
2729 	25,
2730 	26,
2731 	27,
2732 	28,
2733 	29,
2734 	30,
2735 	31,
2736 	32,
2737 	33,
2738 	34,
2739 	35,
2740 	36,
2741 	37,
2742 	38,
2743 	39,
2744 	40,
2745 	41,
2746 	42,
2747 	43,
2748 	44,
2749 	45,
2750 	46,
2751 	47,
2752 	48,
2753 	49,
2754 	50,
2755 	51,
2756 	52,
2757 	53,
2758 	54,
2759 	55,
2760 	56,
2761 	57,
2762 	58,
2763 	59,
2764 	60,
2765 	61,
2766 	62,
2767 	63,
2768 	64,
2769 	65,
2770 	66,
2771 	67,
2772 	68,
2773 	69,
2774 	70,
2775 	71,
2776 	72,
2777 	73,
2778 	74,
2779 	75,
2780 	76,
2781 	77,
2782 	78,
2783 	79,
2784 	80,
2785 	81,
2786 	82,
2787 	83,
2788 	84,
2789 	85,
2790 	86,
2791 	87,
2792 	88,
2793 	89,
2794 	90,
2795 	91,
2796 	92,
2797 	93,
2798 	94,
2799 	95,
2800 	96,
2801 	97,
2802 	98,
2803 	99,
2804 	100,
2805 	101,
2806 	102,
2807 	103,
2808 	104,
2809 	105,
2810 	106,
2811 	107,
2812 	108,
2813 	109,
2814 	110,
2815 	111,
2816 	112,
2817 	113,
2818 	114,
2819 	115,
2820 	116,
2821 	117,
2822 	118,
2823 	119,
2824 	120,
2825 	121,
2826 	122,
2827 	123,
2828 	124,
2829 	125,
2830 	126,
2831 	127,
2832 	1026,
2833 	1027,
2834 	8218,
2835 	1107,
2836 	8222,
2837 	8230,
2838 	8224,
2839 	8225,
2840 	8364,
2841 	8240,
2842 	1033,
2843 	8249,
2844 	1034,
2845 	1036,
2846 	1035,
2847 	1039,
2848 	1106,
2849 	8216,
2850 	8217,
2851 	8220,
2852 	8221,
2853 	8226,
2854 	8211,
2855 	8212,
2856 	0,
2857 	8482,
2858 	1113,
2859 	8250,
2860 	1114,
2861 	1116,
2862 	1115,
2863 	1119,
2864 	160,
2865 	1038,
2866 	1118,
2867 	1032,
2868 	164,
2869 	1168,
2870 	166,
2871 	167,
2872 	1025,
2873 	169,
2874 	1028,
2875 	171,
2876 	172,
2877 	173,
2878 	174,
2879 	1031,
2880 	176,
2881 	177,
2882 	1030,
2883 	1110,
2884 	1169,
2885 	181,
2886 	182,
2887 	183,
2888 	1105,
2889 	8470,
2890 	1108,
2891 	187,
2892 	1112,
2893 	1029,
2894 	1109,
2895 	1111,
2896 	1040,
2897 	1041,
2898 	1042,
2899 	1043,
2900 	1044,
2901 	1045,
2902 	1046,
2903 	1047,
2904 	1048,
2905 	1049,
2906 	1050,
2907 	1051,
2908 	1052,
2909 	1053,
2910 	1054,
2911 	1055,
2912 	1056,
2913 	1057,
2914 	1058,
2915 	1059,
2916 	1060,
2917 	1061,
2918 	1062,
2919 	1063,
2920 	1064,
2921 	1065,
2922 	1066,
2923 	1067,
2924 	1068,
2925 	1069,
2926 	1070,
2927 	1071,
2928 	1072,
2929 	1073,
2930 	1074,
2931 	1075,
2932 	1076,
2933 	1077,
2934 	1078,
2935 	1079,
2936 	1080,
2937 	1081,
2938 	1082,
2939 	1083,
2940 	1084,
2941 	1085,
2942 	1086,
2943 	1087,
2944 	1088,
2945 	1089,
2946 	1090,
2947 	1091,
2948 	1092,
2949 	1093,
2950 	1094,
2951 	1095,
2952 	1096,
2953 	1097,
2954 	1098,
2955 	1099,
2956 	1100,
2957 	1101,
2958 	1102,
2959 	1103,
2960 };
2961 
2962 const char *fz_glyph_name_from_windows_1251[256] = {
2963 	_notdef,
2964 	_notdef,
2965 	_notdef,
2966 	_notdef,
2967 	_notdef,
2968 	_notdef,
2969 	_notdef,
2970 	_notdef,
2971 	_notdef,
2972 	_notdef,
2973 	_notdef,
2974 	_notdef,
2975 	_notdef,
2976 	_notdef,
2977 	_notdef,
2978 	_notdef,
2979 	_notdef,
2980 	_notdef,
2981 	_notdef,
2982 	_notdef,
2983 	_notdef,
2984 	_notdef,
2985 	_notdef,
2986 	_notdef,
2987 	_notdef,
2988 	_notdef,
2989 	_notdef,
2990 	_notdef,
2991 	_notdef,
2992 	_notdef,
2993 	_notdef,
2994 	_notdef,
2995 	"space",
2996 	"exclam",
2997 	"quotedbl",
2998 	"numbersign",
2999 	"dollar",
3000 	"percent",
3001 	"ampersand",
3002 	"quotesingle",
3003 	"parenleft",
3004 	"parenright",
3005 	"asterisk",
3006 	"plus",
3007 	"comma",
3008 	"hyphen",
3009 	"period",
3010 	"slash",
3011 	"zero",
3012 	"one",
3013 	"two",
3014 	"three",
3015 	"four",
3016 	"five",
3017 	"six",
3018 	"seven",
3019 	"eight",
3020 	"nine",
3021 	"colon",
3022 	"semicolon",
3023 	"less",
3024 	"equal",
3025 	"greater",
3026 	"question",
3027 	"at",
3028 	"A",
3029 	"B",
3030 	"C",
3031 	"D",
3032 	"E",
3033 	"F",
3034 	"G",
3035 	"H",
3036 	"I",
3037 	"J",
3038 	"K",
3039 	"L",
3040 	"M",
3041 	"N",
3042 	"O",
3043 	"P",
3044 	"Q",
3045 	"R",
3046 	"S",
3047 	"T",
3048 	"U",
3049 	"V",
3050 	"W",
3051 	"X",
3052 	"Y",
3053 	"Z",
3054 	"bracketleft",
3055 	"backslash",
3056 	"bracketright",
3057 	"asciicircum",
3058 	"underscore",
3059 	"grave",
3060 	"a",
3061 	"b",
3062 	"c",
3063 	"d",
3064 	"e",
3065 	"f",
3066 	"g",
3067 	"h",
3068 	"i",
3069 	"j",
3070 	"k",
3071 	"l",
3072 	"m",
3073 	"n",
3074 	"o",
3075 	"p",
3076 	"q",
3077 	"r",
3078 	"s",
3079 	"t",
3080 	"u",
3081 	"v",
3082 	"w",
3083 	"x",
3084 	"y",
3085 	"z",
3086 	"braceleft",
3087 	"bar",
3088 	"braceright",
3089 	"asciitilde",
3090 	"controlDEL",
3091 	"Djecyrillic",
3092 	"Gjecyrillic",
3093 	"quotesinglbase",
3094 	"afii10100",
3095 	"quotedblbase",
3096 	"ellipsis",
3097 	"dagger",
3098 	"daggerdbl",
3099 	"Euro",
3100 	"perthousand",
3101 	"Ljecyrillic",
3102 	"guilsinglleft",
3103 	"Njecyrillic",
3104 	"Kjecyrillic",
3105 	"Tshecyrillic",
3106 	"Dzhecyrillic",
3107 	"afii10099",
3108 	"quoteleft",
3109 	"quoteright",
3110 	"quotedblleft",
3111 	"quotedblright",
3112 	"bullet",
3113 	"endash",
3114 	"emdash",
3115 	_notdef,
3116 	"trademark",
3117 	"afii10106",
3118 	"guilsinglright",
3119 	"afii10107",
3120 	"afii10109",
3121 	"afii10108",
3122 	"afii10193",
3123 	"nbspace",
3124 	"Ushortcyrillic",
3125 	"afii10110",
3126 	"Jecyrillic",
3127 	"currency",
3128 	"Gheupturncyrillic",
3129 	"brokenbar",
3130 	"section",
3131 	"Iocyrillic",
3132 	"copyright",
3133 	"Ecyrillic",
3134 	"guillemotleft",
3135 	"logicalnot",
3136 	"sfthyphen",
3137 	"registered",
3138 	"Yicyrillic",
3139 	"degree",
3140 	"plusminus",
3141 	"Icyrillic",
3142 	"afii10103",
3143 	"afii10098",
3144 	"mu",
3145 	"paragraph",
3146 	"periodcentered",
3147 	"afii10071",
3148 	"afii61352",
3149 	"afii10101",
3150 	"guillemotright",
3151 	"afii10105",
3152 	"Dzecyrillic",
3153 	"afii10102",
3154 	"afii10104",
3155 	"Acyrillic",
3156 	"Becyrillic",
3157 	"Vecyrillic",
3158 	"Gecyrillic",
3159 	"Decyrillic",
3160 	"Iecyrillic",
3161 	"Zhecyrillic",
3162 	"Zecyrillic",
3163 	"Iicyrillic",
3164 	"Iishortcyrillic",
3165 	"Kacyrillic",
3166 	"Elcyrillic",
3167 	"Emcyrillic",
3168 	"Encyrillic",
3169 	"Ocyrillic",
3170 	"Pecyrillic",
3171 	"Ercyrillic",
3172 	"Escyrillic",
3173 	"Tecyrillic",
3174 	"Ucyrillic",
3175 	"Efcyrillic",
3176 	"Khacyrillic",
3177 	"Tsecyrillic",
3178 	"Checyrillic",
3179 	"Shacyrillic",
3180 	"Shchacyrillic",
3181 	"Hardsigncyrillic",
3182 	"Yericyrillic",
3183 	"Softsigncyrillic",
3184 	"Ereversedcyrillic",
3185 	"IUcyrillic",
3186 	"IAcyrillic",
3187 	"acyrillic",
3188 	"afii10066",
3189 	"afii10067",
3190 	"afii10068",
3191 	"afii10069",
3192 	"afii10070",
3193 	"afii10072",
3194 	"afii10073",
3195 	"afii10074",
3196 	"afii10075",
3197 	"afii10076",
3198 	"afii10077",
3199 	"afii10078",
3200 	"afii10079",
3201 	"afii10080",
3202 	"afii10081",
3203 	"afii10082",
3204 	"afii10083",
3205 	"afii10084",
3206 	"afii10085",
3207 	"afii10086",
3208 	"afii10087",
3209 	"afii10088",
3210 	"afii10089",
3211 	"afii10090",
3212 	"afii10091",
3213 	"afii10092",
3214 	"afii10093",
3215 	"afii10094",
3216 	"afii10095",
3217 	"afii10096",
3218 	"afii10097",
3219 };
3220 
3221 static const struct { unsigned short u, c; } windows_1251_from_unicode[] = {
3222 	{0x00a0,160},
3223 	{0x00a4,164},
3224 	{0x00a6,166},
3225 	{0x00a7,167},
3226 	{0x00a9,169},
3227 	{0x00ab,171},
3228 	{0x00ac,172},
3229 	{0x00ad,173},
3230 	{0x00ae,174},
3231 	{0x00b0,176},
3232 	{0x00b1,177},
3233 	{0x00b5,181},
3234 	{0x00b6,182},
3235 	{0x00b7,183},
3236 	{0x00bb,187},
3237 	{0x0401,168},
3238 	{0x0402,128},
3239 	{0x0403,129},
3240 	{0x0404,170},
3241 	{0x0405,189},
3242 	{0x0406,178},
3243 	{0x0407,175},
3244 	{0x0408,163},
3245 	{0x0409,138},
3246 	{0x040a,140},
3247 	{0x040b,142},
3248 	{0x040c,141},
3249 	{0x040e,161},
3250 	{0x040f,143},
3251 	{0x0410,192},
3252 	{0x0411,193},
3253 	{0x0412,194},
3254 	{0x0413,195},
3255 	{0x0414,196},
3256 	{0x0415,197},
3257 	{0x0416,198},
3258 	{0x0417,199},
3259 	{0x0418,200},
3260 	{0x0419,201},
3261 	{0x041a,202},
3262 	{0x041b,203},
3263 	{0x041c,204},
3264 	{0x041d,205},
3265 	{0x041e,206},
3266 	{0x041f,207},
3267 	{0x0420,208},
3268 	{0x0421,209},
3269 	{0x0422,210},
3270 	{0x0423,211},
3271 	{0x0424,212},
3272 	{0x0425,213},
3273 	{0x0426,214},
3274 	{0x0427,215},
3275 	{0x0428,216},
3276 	{0x0429,217},
3277 	{0x042a,218},
3278 	{0x042b,219},
3279 	{0x042c,220},
3280 	{0x042d,221},
3281 	{0x042e,222},
3282 	{0x042f,223},
3283 	{0x0430,224},
3284 	{0x0431,225},
3285 	{0x0432,226},
3286 	{0x0433,227},
3287 	{0x0434,228},
3288 	{0x0435,229},
3289 	{0x0436,230},
3290 	{0x0437,231},
3291 	{0x0438,232},
3292 	{0x0439,233},
3293 	{0x043a,234},
3294 	{0x043b,235},
3295 	{0x043c,236},
3296 	{0x043d,237},
3297 	{0x043e,238},
3298 	{0x043f,239},
3299 	{0x0440,240},
3300 	{0x0441,241},
3301 	{0x0442,242},
3302 	{0x0443,243},
3303 	{0x0444,244},
3304 	{0x0445,245},
3305 	{0x0446,246},
3306 	{0x0447,247},
3307 	{0x0448,248},
3308 	{0x0449,249},
3309 	{0x044a,250},
3310 	{0x044b,251},
3311 	{0x044c,252},
3312 	{0x044d,253},
3313 	{0x044e,254},
3314 	{0x044f,255},
3315 	{0x0451,184},
3316 	{0x0452,144},
3317 	{0x0453,131},
3318 	{0x0454,186},
3319 	{0x0455,190},
3320 	{0x0456,179},
3321 	{0x0457,191},
3322 	{0x0458,188},
3323 	{0x0459,154},
3324 	{0x045a,156},
3325 	{0x045b,158},
3326 	{0x045c,157},
3327 	{0x045e,162},
3328 	{0x045f,159},
3329 	{0x0490,165},
3330 	{0x0491,180},
3331 	{0x2013,150},
3332 	{0x2014,151},
3333 	{0x2018,145},
3334 	{0x2019,146},
3335 	{0x201a,130},
3336 	{0x201c,147},
3337 	{0x201d,148},
3338 	{0x201e,132},
3339 	{0x2020,134},
3340 	{0x2021,135},
3341 	{0x2022,149},
3342 	{0x2026,133},
3343 	{0x2030,137},
3344 	{0x2039,139},
3345 	{0x203a,155},
3346 	{0x20ac,136},
3347 	{0x2116,185},
3348 	{0x2122,153},
3349 };
3350 
3351 const unsigned short fz_unicode_from_windows_1252[256] = {
3352 	0,
3353 	1,
3354 	2,
3355 	3,
3356 	4,
3357 	5,
3358 	6,
3359 	7,
3360 	8,
3361 	9,
3362 	10,
3363 	11,
3364 	12,
3365 	13,
3366 	14,
3367 	15,
3368 	16,
3369 	17,
3370 	18,
3371 	19,
3372 	20,
3373 	21,
3374 	22,
3375 	23,
3376 	24,
3377 	25,
3378 	26,
3379 	27,
3380 	28,
3381 	29,
3382 	30,
3383 	31,
3384 	32,
3385 	33,
3386 	34,
3387 	35,
3388 	36,
3389 	37,
3390 	38,
3391 	39,
3392 	40,
3393 	41,
3394 	42,
3395 	43,
3396 	44,
3397 	45,
3398 	46,
3399 	47,
3400 	48,
3401 	49,
3402 	50,
3403 	51,
3404 	52,
3405 	53,
3406 	54,
3407 	55,
3408 	56,
3409 	57,
3410 	58,
3411 	59,
3412 	60,
3413 	61,
3414 	62,
3415 	63,
3416 	64,
3417 	65,
3418 	66,
3419 	67,
3420 	68,
3421 	69,
3422 	70,
3423 	71,
3424 	72,
3425 	73,
3426 	74,
3427 	75,
3428 	76,
3429 	77,
3430 	78,
3431 	79,
3432 	80,
3433 	81,
3434 	82,
3435 	83,
3436 	84,
3437 	85,
3438 	86,
3439 	87,
3440 	88,
3441 	89,
3442 	90,
3443 	91,
3444 	92,
3445 	93,
3446 	94,
3447 	95,
3448 	96,
3449 	97,
3450 	98,
3451 	99,
3452 	100,
3453 	101,
3454 	102,
3455 	103,
3456 	104,
3457 	105,
3458 	106,
3459 	107,
3460 	108,
3461 	109,
3462 	110,
3463 	111,
3464 	112,
3465 	113,
3466 	114,
3467 	115,
3468 	116,
3469 	117,
3470 	118,
3471 	119,
3472 	120,
3473 	121,
3474 	122,
3475 	123,
3476 	124,
3477 	125,
3478 	126,
3479 	127,
3480 	8364,
3481 	0,
3482 	8218,
3483 	402,
3484 	8222,
3485 	8230,
3486 	8224,
3487 	8225,
3488 	710,
3489 	8240,
3490 	352,
3491 	8249,
3492 	338,
3493 	0,
3494 	381,
3495 	0,
3496 	0,
3497 	8216,
3498 	8217,
3499 	8220,
3500 	8221,
3501 	8226,
3502 	8211,
3503 	8212,
3504 	732,
3505 	8482,
3506 	353,
3507 	8250,
3508 	339,
3509 	0,
3510 	382,
3511 	376,
3512 	160,
3513 	161,
3514 	162,
3515 	163,
3516 	164,
3517 	165,
3518 	166,
3519 	167,
3520 	168,
3521 	169,
3522 	170,
3523 	171,
3524 	172,
3525 	173,
3526 	174,
3527 	175,
3528 	176,
3529 	177,
3530 	178,
3531 	179,
3532 	180,
3533 	181,
3534 	182,
3535 	183,
3536 	184,
3537 	185,
3538 	186,
3539 	187,
3540 	188,
3541 	189,
3542 	190,
3543 	191,
3544 	192,
3545 	193,
3546 	194,
3547 	195,
3548 	196,
3549 	197,
3550 	198,
3551 	199,
3552 	200,
3553 	201,
3554 	202,
3555 	203,
3556 	204,
3557 	205,
3558 	206,
3559 	207,
3560 	208,
3561 	209,
3562 	210,
3563 	211,
3564 	212,
3565 	213,
3566 	214,
3567 	215,
3568 	216,
3569 	217,
3570 	218,
3571 	219,
3572 	220,
3573 	221,
3574 	222,
3575 	223,
3576 	224,
3577 	225,
3578 	226,
3579 	227,
3580 	228,
3581 	229,
3582 	230,
3583 	231,
3584 	232,
3585 	233,
3586 	234,
3587 	235,
3588 	236,
3589 	237,
3590 	238,
3591 	239,
3592 	240,
3593 	241,
3594 	242,
3595 	243,
3596 	244,
3597 	245,
3598 	246,
3599 	247,
3600 	248,
3601 	249,
3602 	250,
3603 	251,
3604 	252,
3605 	253,
3606 	254,
3607 	255,
3608 };
3609 
3610 const char *fz_glyph_name_from_windows_1252[256] = {
3611 	_notdef,
3612 	_notdef,
3613 	_notdef,
3614 	_notdef,
3615 	_notdef,
3616 	_notdef,
3617 	_notdef,
3618 	_notdef,
3619 	_notdef,
3620 	_notdef,
3621 	_notdef,
3622 	_notdef,
3623 	_notdef,
3624 	_notdef,
3625 	_notdef,
3626 	_notdef,
3627 	_notdef,
3628 	_notdef,
3629 	_notdef,
3630 	_notdef,
3631 	_notdef,
3632 	_notdef,
3633 	_notdef,
3634 	_notdef,
3635 	_notdef,
3636 	_notdef,
3637 	_notdef,
3638 	_notdef,
3639 	_notdef,
3640 	_notdef,
3641 	_notdef,
3642 	_notdef,
3643 	"space",
3644 	"exclam",
3645 	"quotedbl",
3646 	"numbersign",
3647 	"dollar",
3648 	"percent",
3649 	"ampersand",
3650 	"quotesingle",
3651 	"parenleft",
3652 	"parenright",
3653 	"asterisk",
3654 	"plus",
3655 	"comma",
3656 	"hyphen",
3657 	"period",
3658 	"slash",
3659 	"zero",
3660 	"one",
3661 	"two",
3662 	"three",
3663 	"four",
3664 	"five",
3665 	"six",
3666 	"seven",
3667 	"eight",
3668 	"nine",
3669 	"colon",
3670 	"semicolon",
3671 	"less",
3672 	"equal",
3673 	"greater",
3674 	"question",
3675 	"at",
3676 	"A",
3677 	"B",
3678 	"C",
3679 	"D",
3680 	"E",
3681 	"F",
3682 	"G",
3683 	"H",
3684 	"I",
3685 	"J",
3686 	"K",
3687 	"L",
3688 	"M",
3689 	"N",
3690 	"O",
3691 	"P",
3692 	"Q",
3693 	"R",
3694 	"S",
3695 	"T",
3696 	"U",
3697 	"V",
3698 	"W",
3699 	"X",
3700 	"Y",
3701 	"Z",
3702 	"bracketleft",
3703 	"backslash",
3704 	"bracketright",
3705 	"asciicircum",
3706 	"underscore",
3707 	"grave",
3708 	"a",
3709 	"b",
3710 	"c",
3711 	"d",
3712 	"e",
3713 	"f",
3714 	"g",
3715 	"h",
3716 	"i",
3717 	"j",
3718 	"k",
3719 	"l",
3720 	"m",
3721 	"n",
3722 	"o",
3723 	"p",
3724 	"q",
3725 	"r",
3726 	"s",
3727 	"t",
3728 	"u",
3729 	"v",
3730 	"w",
3731 	"x",
3732 	"y",
3733 	"z",
3734 	"braceleft",
3735 	"bar",
3736 	"braceright",
3737 	"asciitilde",
3738 	"controlDEL",
3739 	"Euro",
3740 	_notdef,
3741 	"quotesinglbase",
3742 	"florin",
3743 	"quotedblbase",
3744 	"ellipsis",
3745 	"dagger",
3746 	"daggerdbl",
3747 	"circumflex",
3748 	"perthousand",
3749 	"Scaron",
3750 	"guilsinglleft",
3751 	"OE",
3752 	_notdef,
3753 	"Zcaron",
3754 	_notdef,
3755 	_notdef,
3756 	"quoteleft",
3757 	"quoteright",
3758 	"quotedblleft",
3759 	"quotedblright",
3760 	"bullet",
3761 	"endash",
3762 	"emdash",
3763 	"tilde",
3764 	"trademark",
3765 	"scaron",
3766 	"guilsinglright",
3767 	"oe",
3768 	_notdef,
3769 	"zcaron",
3770 	"Ydieresis",
3771 	"nbspace",
3772 	"exclamdown",
3773 	"cent",
3774 	"sterling",
3775 	"currency",
3776 	"yen",
3777 	"brokenbar",
3778 	"section",
3779 	"dieresis",
3780 	"copyright",
3781 	"ordfeminine",
3782 	"guillemotleft",
3783 	"logicalnot",
3784 	"sfthyphen",
3785 	"registered",
3786 	"macron",
3787 	"degree",
3788 	"plusminus",
3789 	"twosuperior",
3790 	"threesuperior",
3791 	"acute",
3792 	"mu",
3793 	"paragraph",
3794 	"periodcentered",
3795 	"cedilla",
3796 	"onesuperior",
3797 	"ordmasculine",
3798 	"guillemotright",
3799 	"onequarter",
3800 	"onehalf",
3801 	"threequarters",
3802 	"questiondown",
3803 	"Agrave",
3804 	"Aacute",
3805 	"Acircumflex",
3806 	"Atilde",
3807 	"Adieresis",
3808 	"Aring",
3809 	"AE",
3810 	"Ccedilla",
3811 	"Egrave",
3812 	"Eacute",
3813 	"Ecircumflex",
3814 	"Edieresis",
3815 	"Igrave",
3816 	"Iacute",
3817 	"Icircumflex",
3818 	"Idieresis",
3819 	"Eth",
3820 	"Ntilde",
3821 	"Ograve",
3822 	"Oacute",
3823 	"Ocircumflex",
3824 	"Otilde",
3825 	"Odieresis",
3826 	"multiply",
3827 	"Oslash",
3828 	"Ugrave",
3829 	"Uacute",
3830 	"Ucircumflex",
3831 	"Udieresis",
3832 	"Yacute",
3833 	"Thorn",
3834 	"germandbls",
3835 	"agrave",
3836 	"aacute",
3837 	"acircumflex",
3838 	"atilde",
3839 	"adieresis",
3840 	"aring",
3841 	"ae",
3842 	"ccedilla",
3843 	"egrave",
3844 	"eacute",
3845 	"ecircumflex",
3846 	"edieresis",
3847 	"igrave",
3848 	"iacute",
3849 	"icircumflex",
3850 	"idieresis",
3851 	"eth",
3852 	"ntilde",
3853 	"ograve",
3854 	"oacute",
3855 	"ocircumflex",
3856 	"otilde",
3857 	"odieresis",
3858 	"divide",
3859 	"oslash",
3860 	"ugrave",
3861 	"uacute",
3862 	"ucircumflex",
3863 	"udieresis",
3864 	"yacute",
3865 	"thorn",
3866 	"ydieresis",
3867 };
3868 
3869 static const struct { unsigned short u, c; } windows_1252_from_unicode[] = {
3870 	{0x00a0,160},
3871 	{0x00a1,161},
3872 	{0x00a2,162},
3873 	{0x00a3,163},
3874 	{0x00a4,164},
3875 	{0x00a5,165},
3876 	{0x00a6,166},
3877 	{0x00a7,167},
3878 	{0x00a8,168},
3879 	{0x00a9,169},
3880 	{0x00aa,170},
3881 	{0x00ab,171},
3882 	{0x00ac,172},
3883 	{0x00ad,173},
3884 	{0x00ae,174},
3885 	{0x00af,175},
3886 	{0x00b0,176},
3887 	{0x00b1,177},
3888 	{0x00b2,178},
3889 	{0x00b3,179},
3890 	{0x00b4,180},
3891 	{0x00b5,181},
3892 	{0x00b6,182},
3893 	{0x00b7,183},
3894 	{0x00b8,184},
3895 	{0x00b9,185},
3896 	{0x00ba,186},
3897 	{0x00bb,187},
3898 	{0x00bc,188},
3899 	{0x00bd,189},
3900 	{0x00be,190},
3901 	{0x00bf,191},
3902 	{0x00c0,192},
3903 	{0x00c1,193},
3904 	{0x00c2,194},
3905 	{0x00c3,195},
3906 	{0x00c4,196},
3907 	{0x00c5,197},
3908 	{0x00c6,198},
3909 	{0x00c7,199},
3910 	{0x00c8,200},
3911 	{0x00c9,201},
3912 	{0x00ca,202},
3913 	{0x00cb,203},
3914 	{0x00cc,204},
3915 	{0x00cd,205},
3916 	{0x00ce,206},
3917 	{0x00cf,207},
3918 	{0x00d0,208},
3919 	{0x00d1,209},
3920 	{0x00d2,210},
3921 	{0x00d3,211},
3922 	{0x00d4,212},
3923 	{0x00d5,213},
3924 	{0x00d6,214},
3925 	{0x00d7,215},
3926 	{0x00d8,216},
3927 	{0x00d9,217},
3928 	{0x00da,218},
3929 	{0x00db,219},
3930 	{0x00dc,220},
3931 	{0x00dd,221},
3932 	{0x00de,222},
3933 	{0x00df,223},
3934 	{0x00e0,224},
3935 	{0x00e1,225},
3936 	{0x00e2,226},
3937 	{0x00e3,227},
3938 	{0x00e4,228},
3939 	{0x00e5,229},
3940 	{0x00e6,230},
3941 	{0x00e7,231},
3942 	{0x00e8,232},
3943 	{0x00e9,233},
3944 	{0x00ea,234},
3945 	{0x00eb,235},
3946 	{0x00ec,236},
3947 	{0x00ed,237},
3948 	{0x00ee,238},
3949 	{0x00ef,239},
3950 	{0x00f0,240},
3951 	{0x00f1,241},
3952 	{0x00f2,242},
3953 	{0x00f3,243},
3954 	{0x00f4,244},
3955 	{0x00f5,245},
3956 	{0x00f6,246},
3957 	{0x00f7,247},
3958 	{0x00f8,248},
3959 	{0x00f9,249},
3960 	{0x00fa,250},
3961 	{0x00fb,251},
3962 	{0x00fc,252},
3963 	{0x00fd,253},
3964 	{0x00fe,254},
3965 	{0x00ff,255},
3966 	{0x0152,140},
3967 	{0x0153,156},
3968 	{0x0160,138},
3969 	{0x0161,154},
3970 	{0x0178,159},
3971 	{0x017d,142},
3972 	{0x017e,158},
3973 	{0x0192,131},
3974 	{0x02c6,136},
3975 	{0x02dc,152},
3976 	{0x2013,150},
3977 	{0x2014,151},
3978 	{0x2018,145},
3979 	{0x2019,146},
3980 	{0x201a,130},
3981 	{0x201c,147},
3982 	{0x201d,148},
3983 	{0x201e,132},
3984 	{0x2020,134},
3985 	{0x2021,135},
3986 	{0x2022,149},
3987 	{0x2026,133},
3988 	{0x2030,137},
3989 	{0x2039,139},
3990 	{0x203a,155},
3991 	{0x20ac,128},
3992 	{0x2122,153},
3993 };
3994