/* $Id: nameprepdata.c,v 1.1 2001/06/09 00:30:19 tale Exp $ */ /* $-Id: generate_nameprep_data.pl,v 1.2 2001/03/05 09:04:36 ishisone Exp -$ */ /* * Do not edit this file! * This file is generated from NAMEPREP specification. */ #define MAP_BITS_0 9 #define MAP_BITS_1 7 #define MAP_BITS_2 5 #define PROH_BITS_0 7 #define PROH_BITS_1 7 #define PROH_BITS_2 7 #define UNAS_BITS_0 7 #define UNAS_BITS_1 7 #define UNAS_BITS_2 7 static unsigned short nameprep_id02_map_imap[] = { 272, 400, 528, 656, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 912, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 0, 0, 1, 0, 0, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 0, 27, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 48, 0, 0, 49, 50, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 60, 0, 0, 0, 0, 0, 0, }; static struct { unsigned short tbl[32]; } nameprep_id02_map_table[] = { {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 0, 126, 129, 132, 135, 138, 141, 144, 147, }}, {{ 150, 0, 153, 0, 156, 0, 159, 0, 162, 0, 165, 0, 168, 0, 171, 0, 174, 0, 177, 0, 180, 0, 183, 0, 186, 0, 189, 0, 192, 0, 195, 0, }}, {{ 198, 0, 201, 0, 204, 0, 207, 0, 210, 0, 213, 0, 216, 0, 219, 0, 17, 17, 222, 0, 225, 0, 228, 0, 0, 231, 0, 234, 0, 237, 0, 240, }}, {{ 0, 243, 0, 246, 0, 249, 0, 252, 0, 255, 259, 0, 262, 0, 265, 0, 268, 0, 271, 0, 274, 0, 277, 0, 280, 0, 283, 0, 286, 0, 289, 0, }}, {{ 292, 0, 295, 0, 298, 0, 301, 0, 304, 0, 307, 0, 310, 0, 313, 0, 316, 0, 319, 0, 322, 0, 325, 0, 328, 331, 0, 334, 0, 337, 0, 37, }}, {{ 0, 340, 343, 0, 346, 0, 349, 352, 0, 355, 358, 361, 0, 0, 364, 367, 370, 373, 0, 376, 379, 0, 382, 385, 388, 0, 0, 0, 391, 394, 0, 397, }}, {{ 400, 0, 403, 0, 406, 0, 409, 412, 0, 415, 0, 0, 418, 0, 421, 424, 0, 427, 430, 433, 0, 436, 0, 439, 442, 0, 0, 0, 445, 0, 0, 0, }}, {{ 0, 0, 0, 0, 448, 448, 0, 451, 451, 0, 454, 454, 0, 457, 0, 460, 0, 463, 0, 466, 0, 469, 0, 472, 0, 475, 0, 478, 0, 0, 481, 0, }}, {{ 484, 0, 487, 0, 490, 0, 493, 0, 496, 0, 499, 0, 502, 0, 505, 0, 508, 512, 512, 0, 515, 0, 518, 521, 524, 0, 527, 0, 530, 0, 533, 0, }}, {{ 536, 0, 539, 0, 542, 0, 545, 0, 548, 0, 551, 0, 554, 0, 557, 0, 560, 0, 563, 0, 566, 0, 569, 0, 572, 0, 575, 0, 578, 0, 581, 0, }}, {{ 0, 0, 584, 0, 587, 0, 590, 0, 593, 0, 596, 0, 599, 0, 602, 0, 605, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 618, 0, 621, 624, 627, 0, 630, 0, 633, 636, 639, 646, 649, 652, 655, 658, 661, 664, 667, 611, 670, 673, 54, 676, 679, 682, }}, {{ 685, 688, 0, 691, 694, 697, 700, 703, 706, 709, 712, 715, 0, 0, 0, 0, 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 691, 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 649, 667, 697, 633, 715, 700, 685, 0, 0, 0, 725, 0, 728, 0, 731, 0, }}, {{ 734, 0, 737, 0, 740, 0, 743, 0, 746, 0, 749, 0, 752, 0, 755, 0, 670, 688, 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 758, 761, 764, 767, 770, 773, 776, 779, 782, 785, 788, 791, 794, 797, 800, 803, 806, 809, 812, 815, 818, 821, 824, 827, 830, 833, 836, 839, 842, 845, 848, 851, }}, {{ 854, 857, 860, 863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 902, 0, 905, 0, 908, 0, 911, 0, 914, 0, 917, 0, 920, 0, 923, 0, 926, 0, 929, 0, 932, 0, 935, 0, 938, 0, 941, 0, 944, 0, 947, 0, }}, {{ 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 953, 0, 956, 0, 959, 0, 962, 0, 965, 0, 968, 0, 971, 0, 974, 0, 977, 0, 980, 0, }}, {{ 983, 0, 986, 0, 989, 0, 992, 0, 995, 0, 998, 0, 1001, 0, 1004, 0, 1007, 0, 1010, 0, 1013, 0, 1016, 0, 1019, 0, 1022, 0, 1025, 0, 1028, 0, }}, {{ 0, 1031, 0, 1034, 0, 0, 0, 1037, 0, 0, 0, 1040, 0, 0, 0, 0, 1043, 0, 1046, 0, 1049, 0, 1052, 0, 1055, 0, 1058, 0, 1061, 0, 1064, 0, }}, {{ 1067, 0, 1070, 0, 1073, 0, 1076, 0, 1079, 0, 1082, 0, 1085, 0, 1088, 0, 1091, 0, 1094, 0, 1097, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136, 1139, 1142, 1145, }}, {{ 1148, 1151, 1154, 1157, 1160, 1163, 1166, 1169, 1172, 1175, 1178, 1181, 1184, 1187, 1190, 1193, 1196, 1199, 1202, 1205, 1208, 1211, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 1222, 0, 1226, 0, 1230, 0, 1234, 0, 1238, 0, 1242, 0, 1246, 0, 1250, 0, 1254, 0, 1258, 0, 1262, 0, 1266, 0, 1270, 0, 1274, 0, 1278, 0, 1282, 0, }}, {{ 1286, 0, 1290, 0, 1294, 0, 1298, 0, 1302, 0, 1306, 0, 1310, 0, 1314, 0, 1318, 0, 1322, 0, 1326, 0, 1330, 0, 1334, 0, 1338, 0, 1342, 0, 1346, 0, }}, {{ 1350, 0, 1354, 0, 1358, 0, 1362, 0, 1366, 0, 1370, 0, 1374, 0, 1378, 0, 1382, 0, 1386, 0, 1390, 0, 1394, 0, 1398, 0, 1402, 0, 1406, 0, 1410, 0, }}, {{ 1414, 0, 1418, 0, 1422, 0, 1426, 0, 1430, 0, 1434, 0, 1438, 0, 1442, 0, 1446, 0, 1450, 0, 1454, 0, 1458, 0, 1462, 0, 1466, 0, 1470, 0, 1474, 0, }}, {{ 1478, 0, 1482, 0, 1486, 0, 1490, 0, 1494, 0, 1498, 0, 1502, 0, 1506, 0, 1510, 0, 1514, 0, 1518, 0, 1522, 1526, 1530, 1534, 1538, 1414, 0, 0, 0, 0, }}, {{ 1542, 0, 1546, 0, 1550, 0, 1554, 0, 1558, 0, 1562, 0, 1566, 0, 1570, 0, 1574, 0, 1578, 0, 1582, 0, 1586, 0, 1590, 0, 1594, 0, 1598, 0, 1602, 0, }}, {{ 1606, 0, 1610, 0, 1614, 0, 1618, 0, 1622, 0, 1626, 0, 1630, 0, 1634, 0, 1638, 0, 1642, 0, 1646, 0, 1650, 0, 1654, 0, 1658, 0, 1662, 0, 1666, 0, }}, {{ 1670, 0, 1674, 0, 1678, 0, 1682, 0, 1686, 0, 1690, 0, 1694, 0, 1698, 0, 1702, 0, 1706, 0, 1710, 0, 1714, 0, 1718, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 1722, 1726, 1730, 1734, 1738, 1742, 1746, 1750, 0, 0, 0, 0, 0, 0, 0, 0, 1754, 1758, 1762, 1766, 1770, 1774, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 1778, 1782, 1786, 1790, 1794, 1798, 1802, 1806, 0, 0, 0, 0, 0, 0, 0, 0, 1810, 1814, 1818, 1822, 1826, 1830, 1834, 1838, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 1842, 1846, 1850, 1854, 1858, 1862, 0, 0, 1866, 0, 1871, 0, 1878, 0, 1885, 0, 0, 1892, 0, 1896, 0, 1900, 0, 1904, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 1940, 1946, 1952, 1958, 1964, 1970, 1976, 1982, 1940, 1946, 1952, 1958, 1964, 1970, 1976, 1982, 1988, 1994, 2000, 2006, 2012, 2018, 2024, 2030, 1988, 1994, 2000, 2006, 2012, 2018, 2024, 2030, }}, {{ 2036, 2042, 2048, 2054, 2060, 2066, 2072, 2078, 2036, 2042, 2048, 2054, 2060, 2066, 2072, 2078, 0, 0, 2084, 2090, 2095, 0, 2100, 2105, 2112, 2116, 2120, 2124, 2090, 0, 611, 0, }}, {{ 0, 0, 2128, 2134, 2139, 0, 2144, 2149, 2156, 2160, 2164, 2168, 2134, 0, 0, 0, 0, 0, 2172, 639, 0, 0, 2179, 2184, 2191, 2195, 2199, 2203, 0, 0, 0, 0, }}, {{ 0, 0, 2207, 718, 2214, 0, 2219, 2224, 2231, 2235, 2239, 2243, 2247, 0, 0, 0, 0, 0, 2251, 2257, 2262, 0, 2267, 2272, 2279, 2283, 2287, 2291, 2257, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 2295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 5, 2298, 0, 0, 0, 370, 0, 2302, 0, 15, 15, 15, 0, 0, 17, 17, 23, 0, 0, 27, 2306, 0, 0, 31, 33, 35, 35, 35, 0, 0, }}, {{ 2309, 2312, 2316, 0, 51, 0, 709, 0, 51, 0, 21, 72, 3, 5, 0, 0, 9, 11, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 2319, 2323, 2327, 2331, 2335, 2339, 2343, 2347, 2351, 2355, 2359, 2363, 2367, 2371, 2375, 2379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2383, 2387, 2391, 2395, 2399, 2403, 2407, 2411, 2415, 2419, }}, {{ 2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, 2467, 2471, 2475, 2479, 2483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2487, 0, 2491, 0, 2494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 2497, 2500, 2503, 2507, 2510, 2513, 2516, 2519, 0, 0, 2522, 2525, 2528, 0, 0, 0, 2532, 2535, 2539, 2543, 2547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2497, 2551, 2555, 2559, 0, 0, 0, 0, 0, 0, 0, 2563, 2566, 2569, 2573, 2576, 2573, 2579, 2582, 2585, 2589, 2592, 2589, }}, {{ 2595, 2599, 0, 2603, 0, 0, 2606, 2613, 2617, 2620, 0, 2623, 0, 2626, 2629, 0, 0, 0, 0, 0, 0, 0, 0, 2632, 0, 2635, 2639, 0, 2642, 2645, 0, 0, }}, {{ 2648, 2651, 2654, 2657, 2661, 2665, 2665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2668, 2673, 2678, 2683, 2688, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, }}, {{ 0, 2693, 2697, 2701, 2705, 2709, 2713, 2717, 2721, 2725, 2729, 2733, 2737, 2741, 2745, 2749, 2753, 2757, 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, 2793, 0, 0, 0, 0, 0, }}, }; static unsigned char nameprep_id02_map_data[] = { 0, 97, 0, 98, 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 111, 0, 112, 0, 113, 0, 114, 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, 0, 120, 0, 121, 0, 122, 0, 0, 206, 188, 0, 195, 160, 0, 195, 161, 0, 195, 162, 0, 195, 163, 0, 195, 164, 0, 195, 165, 0, 195, 166, 0, 195, 167, 0, 195, 168, 0, 195, 169, 0, 195, 170, 0, 195, 171, 0, 195, 172, 0, 195, 173, 0, 195, 174, 0, 195, 175, 0, 195, 176, 0, 195, 177, 0, 195, 178, 0, 195, 179, 0, 195, 180, 0, 195, 181, 0, 195, 182, 0, 195, 184, 0, 195, 185, 0, 195, 186, 0, 195, 187, 0, 195, 188, 0, 195, 189, 0, 195, 190, 0, 115, 115, 0, 196, 129, 0, 196, 131, 0, 196, 133, 0, 196, 135, 0, 196, 137, 0, 196, 139, 0, 196, 141, 0, 196, 143, 0, 196, 145, 0, 196, 147, 0, 196, 149, 0, 196, 151, 0, 196, 153, 0, 196, 155, 0, 196, 157, 0, 196, 159, 0, 196, 161, 0, 196, 163, 0, 196, 165, 0, 196, 167, 0, 196, 169, 0, 196, 171, 0, 196, 173, 0, 196, 175, 0, 196, 179, 0, 196, 181, 0, 196, 183, 0, 196, 186, 0, 196, 188, 0, 196, 190, 0, 197, 128, 0, 197, 130, 0, 197, 132, 0, 197, 134, 0, 197, 136, 0, 202, 188, 110, 0, 197, 139, 0, 197, 141, 0, 197, 143, 0, 197, 145, 0, 197, 147, 0, 197, 149, 0, 197, 151, 0, 197, 153, 0, 197, 155, 0, 197, 157, 0, 197, 159, 0, 197, 161, 0, 197, 163, 0, 197, 165, 0, 197, 167, 0, 197, 169, 0, 197, 171, 0, 197, 173, 0, 197, 175, 0, 197, 177, 0, 197, 179, 0, 197, 181, 0, 197, 183, 0, 195, 191, 0, 197, 186, 0, 197, 188, 0, 197, 190, 0, 201, 147, 0, 198, 131, 0, 198, 133, 0, 201, 148, 0, 198, 136, 0, 201, 150, 0, 201, 151, 0, 198, 140, 0, 199, 157, 0, 201, 153, 0, 201, 155, 0, 198, 146, 0, 201, 160, 0, 201, 163, 0, 201, 169, 0, 201, 168, 0, 198, 153, 0, 201, 175, 0, 201, 178, 0, 201, 181, 0, 198, 161, 0, 198, 163, 0, 198, 165, 0, 202, 128, 0, 198, 168, 0, 202, 131, 0, 198, 173, 0, 202, 136, 0, 198, 176, 0, 202, 138, 0, 202, 139, 0, 198, 180, 0, 198, 182, 0, 202, 146, 0, 198, 185, 0, 198, 189, 0, 199, 134, 0, 199, 137, 0, 199, 140, 0, 199, 142, 0, 199, 144, 0, 199, 146, 0, 199, 148, 0, 199, 150, 0, 199, 152, 0, 199, 154, 0, 199, 156, 0, 199, 159, 0, 199, 161, 0, 199, 163, 0, 199, 165, 0, 199, 167, 0, 199, 169, 0, 199, 171, 0, 199, 173, 0, 199, 175, 0, 106, 204, 140, 0, 199, 179, 0, 199, 181, 0, 198, 149, 0, 198, 191, 0, 199, 185, 0, 199, 187, 0, 199, 189, 0, 199, 191, 0, 200, 129, 0, 200, 131, 0, 200, 133, 0, 200, 135, 0, 200, 137, 0, 200, 139, 0, 200, 141, 0, 200, 143, 0, 200, 145, 0, 200, 147, 0, 200, 149, 0, 200, 151, 0, 200, 153, 0, 200, 155, 0, 200, 157, 0, 200, 159, 0, 200, 163, 0, 200, 165, 0, 200, 167, 0, 200, 169, 0, 200, 171, 0, 200, 173, 0, 200, 175, 0, 200, 177, 0, 200, 179, 0, 206, 185, 0, 32, 206, 185, 0, 206, 172, 0, 206, 173, 0, 206, 174, 0, 206, 175, 0, 207, 140, 0, 207, 141, 0, 207, 142, 0, 206, 185, 204, 136, 204, 129, 0, 206, 177, 0, 206, 178, 0, 206, 179, 0, 206, 180, 0, 206, 181, 0, 206, 182, 0, 206, 183, 0, 206, 184, 0, 206, 186, 0, 206, 187, 0, 206, 189, 0, 206, 190, 0, 206, 191, 0, 207, 128, 0, 207, 129, 0, 207, 130, 0, 207, 132, 0, 207, 133, 0, 207, 134, 0, 207, 135, 0, 207, 136, 0, 207, 137, 0, 207, 138, 0, 207, 139, 0, 207, 133, 204, 136, 204, 129, 0, 207, 155, 0, 207, 157, 0, 207, 159, 0, 207, 161, 0, 207, 163, 0, 207, 165, 0, 207, 167, 0, 207, 169, 0, 207, 171, 0, 207, 173, 0, 207, 175, 0, 209, 144, 0, 209, 145, 0, 209, 146, 0, 209, 147, 0, 209, 148, 0, 209, 149, 0, 209, 150, 0, 209, 151, 0, 209, 152, 0, 209, 153, 0, 209, 154, 0, 209, 155, 0, 209, 156, 0, 209, 157, 0, 209, 158, 0, 209, 159, 0, 208, 176, 0, 208, 177, 0, 208, 178, 0, 208, 179, 0, 208, 180, 0, 208, 181, 0, 208, 182, 0, 208, 183, 0, 208, 184, 0, 208, 185, 0, 208, 186, 0, 208, 187, 0, 208, 188, 0, 208, 189, 0, 208, 190, 0, 208, 191, 0, 209, 128, 0, 209, 129, 0, 209, 130, 0, 209, 131, 0, 209, 132, 0, 209, 133, 0, 209, 134, 0, 209, 135, 0, 209, 136, 0, 209, 137, 0, 209, 138, 0, 209, 139, 0, 209, 140, 0, 209, 141, 0, 209, 142, 0, 209, 143, 0, 209, 161, 0, 209, 163, 0, 209, 165, 0, 209, 167, 0, 209, 169, 0, 209, 171, 0, 209, 173, 0, 209, 175, 0, 209, 177, 0, 209, 179, 0, 209, 181, 0, 209, 183, 0, 209, 185, 0, 209, 187, 0, 209, 189, 0, 209, 191, 0, 210, 129, 0, 210, 141, 0, 210, 143, 0, 210, 145, 0, 210, 147, 0, 210, 149, 0, 210, 151, 0, 210, 153, 0, 210, 155, 0, 210, 157, 0, 210, 159, 0, 210, 161, 0, 210, 163, 0, 210, 165, 0, 210, 167, 0, 210, 169, 0, 210, 171, 0, 210, 173, 0, 210, 175, 0, 210, 177, 0, 210, 179, 0, 210, 181, 0, 210, 183, 0, 210, 185, 0, 210, 187, 0, 210, 189, 0, 210, 191, 0, 211, 130, 0, 211, 132, 0, 211, 136, 0, 211, 140, 0, 211, 145, 0, 211, 147, 0, 211, 149, 0, 211, 151, 0, 211, 153, 0, 211, 155, 0, 211, 157, 0, 211, 159, 0, 211, 161, 0, 211, 163, 0, 211, 165, 0, 211, 167, 0, 211, 169, 0, 211, 171, 0, 211, 173, 0, 211, 175, 0, 211, 177, 0, 211, 179, 0, 211, 181, 0, 211, 185, 0, 213, 161, 0, 213, 162, 0, 213, 163, 0, 213, 164, 0, 213, 165, 0, 213, 166, 0, 213, 167, 0, 213, 168, 0, 213, 169, 0, 213, 170, 0, 213, 171, 0, 213, 172, 0, 213, 173, 0, 213, 174, 0, 213, 175, 0, 213, 176, 0, 213, 177, 0, 213, 178, 0, 213, 179, 0, 213, 180, 0, 213, 181, 0, 213, 182, 0, 213, 183, 0, 213, 184, 0, 213, 185, 0, 213, 186, 0, 213, 187, 0, 213, 188, 0, 213, 189, 0, 213, 190, 0, 213, 191, 0, 214, 128, 0, 214, 129, 0, 214, 130, 0, 214, 131, 0, 214, 132, 0, 214, 133, 0, 214, 134, 0, 213, 165, 214, 130, 0, 225, 184, 129, 0, 225, 184, 131, 0, 225, 184, 133, 0, 225, 184, 135, 0, 225, 184, 137, 0, 225, 184, 139, 0, 225, 184, 141, 0, 225, 184, 143, 0, 225, 184, 145, 0, 225, 184, 147, 0, 225, 184, 149, 0, 225, 184, 151, 0, 225, 184, 153, 0, 225, 184, 155, 0, 225, 184, 157, 0, 225, 184, 159, 0, 225, 184, 161, 0, 225, 184, 163, 0, 225, 184, 165, 0, 225, 184, 167, 0, 225, 184, 169, 0, 225, 184, 171, 0, 225, 184, 173, 0, 225, 184, 175, 0, 225, 184, 177, 0, 225, 184, 179, 0, 225, 184, 181, 0, 225, 184, 183, 0, 225, 184, 185, 0, 225, 184, 187, 0, 225, 184, 189, 0, 225, 184, 191, 0, 225, 185, 129, 0, 225, 185, 131, 0, 225, 185, 133, 0, 225, 185, 135, 0, 225, 185, 137, 0, 225, 185, 139, 0, 225, 185, 141, 0, 225, 185, 143, 0, 225, 185, 145, 0, 225, 185, 147, 0, 225, 185, 149, 0, 225, 185, 151, 0, 225, 185, 153, 0, 225, 185, 155, 0, 225, 185, 157, 0, 225, 185, 159, 0, 225, 185, 161, 0, 225, 185, 163, 0, 225, 185, 165, 0, 225, 185, 167, 0, 225, 185, 169, 0, 225, 185, 171, 0, 225, 185, 173, 0, 225, 185, 175, 0, 225, 185, 177, 0, 225, 185, 179, 0, 225, 185, 181, 0, 225, 185, 183, 0, 225, 185, 185, 0, 225, 185, 187, 0, 225, 185, 189, 0, 225, 185, 191, 0, 225, 186, 129, 0, 225, 186, 131, 0, 225, 186, 133, 0, 225, 186, 135, 0, 225, 186, 137, 0, 225, 186, 139, 0, 225, 186, 141, 0, 225, 186, 143, 0, 225, 186, 145, 0, 225, 186, 147, 0, 225, 186, 149, 0, 104, 204, 177, 0, 116, 204, 136, 0, 119, 204, 138, 0, 121, 204, 138, 0, 97, 202, 190, 0, 225, 186, 161, 0, 225, 186, 163, 0, 225, 186, 165, 0, 225, 186, 167, 0, 225, 186, 169, 0, 225, 186, 171, 0, 225, 186, 173, 0, 225, 186, 175, 0, 225, 186, 177, 0, 225, 186, 179, 0, 225, 186, 181, 0, 225, 186, 183, 0, 225, 186, 185, 0, 225, 186, 187, 0, 225, 186, 189, 0, 225, 186, 191, 0, 225, 187, 129, 0, 225, 187, 131, 0, 225, 187, 133, 0, 225, 187, 135, 0, 225, 187, 137, 0, 225, 187, 139, 0, 225, 187, 141, 0, 225, 187, 143, 0, 225, 187, 145, 0, 225, 187, 147, 0, 225, 187, 149, 0, 225, 187, 151, 0, 225, 187, 153, 0, 225, 187, 155, 0, 225, 187, 157, 0, 225, 187, 159, 0, 225, 187, 161, 0, 225, 187, 163, 0, 225, 187, 165, 0, 225, 187, 167, 0, 225, 187, 169, 0, 225, 187, 171, 0, 225, 187, 173, 0, 225, 187, 175, 0, 225, 187, 177, 0, 225, 187, 179, 0, 225, 187, 181, 0, 225, 187, 183, 0, 225, 187, 185, 0, 225, 188, 128, 0, 225, 188, 129, 0, 225, 188, 130, 0, 225, 188, 131, 0, 225, 188, 132, 0, 225, 188, 133, 0, 225, 188, 134, 0, 225, 188, 135, 0, 225, 188, 144, 0, 225, 188, 145, 0, 225, 188, 146, 0, 225, 188, 147, 0, 225, 188, 148, 0, 225, 188, 149, 0, 225, 188, 160, 0, 225, 188, 161, 0, 225, 188, 162, 0, 225, 188, 163, 0, 225, 188, 164, 0, 225, 188, 165, 0, 225, 188, 166, 0, 225, 188, 167, 0, 225, 188, 176, 0, 225, 188, 177, 0, 225, 188, 178, 0, 225, 188, 179, 0, 225, 188, 180, 0, 225, 188, 181, 0, 225, 188, 182, 0, 225, 188, 183, 0, 225, 189, 128, 0, 225, 189, 129, 0, 225, 189, 130, 0, 225, 189, 131, 0, 225, 189, 132, 0, 225, 189, 133, 0, 207, 133, 204, 147, 0, 207, 133, 204, 147, 204, 128, 0, 207, 133, 204, 147, 204, 129, 0, 207, 133, 204, 147, 205, 130, 0, 225, 189, 145, 0, 225, 189, 147, 0, 225, 189, 149, 0, 225, 189, 151, 0, 225, 189, 160, 0, 225, 189, 161, 0, 225, 189, 162, 0, 225, 189, 163, 0, 225, 189, 164, 0, 225, 189, 165, 0, 225, 189, 166, 0, 225, 189, 167, 0, 225, 188, 128, 206, 185, 0, 225, 188, 129, 206, 185, 0, 225, 188, 130, 206, 185, 0, 225, 188, 131, 206, 185, 0, 225, 188, 132, 206, 185, 0, 225, 188, 133, 206, 185, 0, 225, 188, 134, 206, 185, 0, 225, 188, 135, 206, 185, 0, 225, 188, 160, 206, 185, 0, 225, 188, 161, 206, 185, 0, 225, 188, 162, 206, 185, 0, 225, 188, 163, 206, 185, 0, 225, 188, 164, 206, 185, 0, 225, 188, 165, 206, 185, 0, 225, 188, 166, 206, 185, 0, 225, 188, 167, 206, 185, 0, 225, 189, 160, 206, 185, 0, 225, 189, 161, 206, 185, 0, 225, 189, 162, 206, 185, 0, 225, 189, 163, 206, 185, 0, 225, 189, 164, 206, 185, 0, 225, 189, 165, 206, 185, 0, 225, 189, 166, 206, 185, 0, 225, 189, 167, 206, 185, 0, 225, 189, 176, 206, 185, 0, 206, 177, 206, 185, 0, 206, 172, 206, 185, 0, 206, 177, 205, 130, 0, 206, 177, 205, 130, 206, 185, 0, 225, 190, 176, 0, 225, 190, 177, 0, 225, 189, 176, 0, 225, 189, 177, 0, 225, 189, 180, 206, 185, 0, 206, 183, 206, 185, 0, 206, 174, 206, 185, 0, 206, 183, 205, 130, 0, 206, 183, 205, 130, 206, 185, 0, 225, 189, 178, 0, 225, 189, 179, 0, 225, 189, 180, 0, 225, 189, 181, 0, 206, 185, 204, 136, 204, 128, 0, 206, 185, 205, 130, 0, 206, 185, 204, 136, 205, 130, 0, 225, 191, 144, 0, 225, 191, 145, 0, 225, 189, 182, 0, 225, 189, 183, 0, 207, 133, 204, 136, 204, 128, 0, 207, 129, 204, 147, 0, 207, 133, 205, 130, 0, 207, 133, 204, 136, 205, 130, 0, 225, 191, 160, 0, 225, 191, 161, 0, 225, 189, 186, 0, 225, 189, 187, 0, 225, 191, 165, 0, 225, 189, 188, 206, 185, 0, 207, 137, 206, 185, 0, 207, 142, 206, 185, 0, 207, 137, 205, 130, 0, 207, 137, 205, 130, 206, 185, 0, 225, 189, 184, 0, 225, 189, 185, 0, 225, 189, 188, 0, 225, 189, 189, 0, 114, 115, 0, 194, 176, 99, 0, 194, 176, 102, 0, 110, 111, 0, 115, 109, 0, 116, 101, 108, 0, 116, 109, 0, 226, 133, 176, 0, 226, 133, 177, 0, 226, 133, 178, 0, 226, 133, 179, 0, 226, 133, 180, 0, 226, 133, 181, 0, 226, 133, 182, 0, 226, 133, 183, 0, 226, 133, 184, 0, 226, 133, 185, 0, 226, 133, 186, 0, 226, 133, 187, 0, 226, 133, 188, 0, 226, 133, 189, 0, 226, 133, 190, 0, 226, 133, 191, 0, 226, 147, 144, 0, 226, 147, 145, 0, 226, 147, 146, 0, 226, 147, 147, 0, 226, 147, 148, 0, 226, 147, 149, 0, 226, 147, 150, 0, 226, 147, 151, 0, 226, 147, 152, 0, 226, 147, 153, 0, 226, 147, 154, 0, 226, 147, 155, 0, 226, 147, 156, 0, 226, 147, 157, 0, 226, 147, 158, 0, 226, 147, 159, 0, 226, 147, 160, 0, 226, 147, 161, 0, 226, 147, 162, 0, 226, 147, 163, 0, 226, 147, 164, 0, 226, 147, 165, 0, 226, 147, 166, 0, 226, 147, 167, 0, 226, 147, 168, 0, 226, 147, 169, 0, 104, 112, 97, 0, 97, 117, 0, 111, 118, 0, 112, 97, 0, 110, 97, 0, 206, 188, 97, 0, 109, 97, 0, 107, 97, 0, 107, 98, 0, 109, 98, 0, 103, 98, 0, 112, 102, 0, 110, 102, 0, 206, 188, 102, 0, 104, 122, 0, 107, 104, 122, 0, 109, 104, 122, 0, 103, 104, 122, 0, 116, 104, 122, 0, 107, 112, 97, 0, 109, 112, 97, 0, 103, 112, 97, 0, 112, 118, 0, 110, 118, 0, 206, 188, 118, 0, 109, 118, 0, 107, 118, 0, 112, 119, 0, 110, 119, 0, 206, 188, 119, 0, 109, 119, 0, 107, 119, 0, 107, 207, 137, 0, 109, 207, 137, 0, 98, 113, 0, 99, 226, 136, 149, 107, 103, 0, 99, 111, 46, 0, 100, 98, 0, 103, 121, 0, 104, 112, 0, 107, 107, 0, 107, 109, 0, 112, 104, 0, 112, 112, 109, 0, 112, 114, 0, 115, 118, 0, 119, 98, 0, 102, 102, 0, 102, 105, 0, 102, 108, 0, 102, 102, 105, 0, 102, 102, 108, 0, 115, 116, 0, 213, 180, 213, 182, 0, 213, 180, 213, 165, 0, 213, 180, 213, 171, 0, 213, 190, 213, 182, 0, 213, 180, 213, 173, 0, 239, 189, 129, 0, 239, 189, 130, 0, 239, 189, 131, 0, 239, 189, 132, 0, 239, 189, 133, 0, 239, 189, 134, 0, 239, 189, 135, 0, 239, 189, 136, 0, 239, 189, 137, 0, 239, 189, 138, 0, 239, 189, 139, 0, 239, 189, 140, 0, 239, 189, 141, 0, 239, 189, 142, 0, 239, 189, 143, 0, 239, 189, 144, 0, 239, 189, 145, 0, 239, 189, 146, 0, 239, 189, 147, 0, 239, 189, 148, 0, 239, 189, 149, 0, 239, 189, 150, 0, 239, 189, 151, 0, 239, 189, 152, 0, 239, 189, 153, 0, 239, 189, 154, 0, }; static unsigned short nameprep_id02_prohibited_imap[] = { 68, 196, 196, 324, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 580, 580, 580, 580, 580, 580, 580, 580, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, }; static struct { unsigned char bm[16]; } nameprep_id02_prohibited_bitmap[] = { {{ 255,255,255,255,255,223, 0,252, 1, 0, 0,248, 1, 0, 0,248, }}, {{ 255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 255,207, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, }}, }; static unsigned short nameprep_id02_unassigned_imap[] = { 68, 196, 324, 452, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 836, 836, 836, 836, 836, 836, 836, 836, 0, 0, 0, 0, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 36, 37, 12, 38, 39, 40, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 41, 42, 43, 44, 45, 46, 47, 0, 48, 49, 50, 51, 52, 0, 53, 54, 12, 55, 56, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 57, 0, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 12, 72, 73, 0, 0, 74, 75, 76, 77, 78, 79, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static struct { unsigned char bm[16]; } nameprep_id02_unassigned_bitmap[] = { {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 3, 0,240,255,255,255, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,248,255,207,187, }}, {{ 15, 40, 0, 0, 4, 0, 0, 0, 0,128, 0, 3, 0, 0,240,255, }}, {{ 128, 12, 0, 0, 0, 0, 0, 0, 96,230, 0, 0, 0, 0,192,252, }}, {{ 255,255,255,255,255,255, 1, 0, 0, 0,128, 1, 1, 0, 0, 0, }}, {{ 0,249, 1, 0, 4, 0, 0, 4,224,255, 0, 0, 0,248,224,255, }}, {{ 255,239,255,119, 1, 0, 0,248, 0, 0,192,255, 0,192, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0,128, }}, {{ 0, 64, 0, 0, 0,224, 0, 0, 0,248,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0,254,255,255,255,255,255,255,255,255,255, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 17, 0, 0, 0, 0, 0, 0, 12, 0,192,224, 0, 0, 0,254,255, }}, {{ 17, 96, 6, 0, 0, 2, 58, 44, 96,198,127, 79, 48, 0, 0,248, }}, {{ 27,120, 6, 0, 0, 2,146, 44,120,198,255,161, 63, 0,224,255, }}, {{ 17, 80, 4, 0, 0, 2, 18, 12, 64,196,254,255, 62, 0,255,255, }}, {{ 17, 96, 6, 0, 0, 2, 50, 12,112,198, 63, 79, 60, 0,254,255, }}, {{ 19, 56,194, 41,231, 56, 64, 60, 56,194,127,255,127, 0,248,255, }}, {{ 17, 32, 2, 0, 0, 2, 16, 60, 32,194,159,255, 60, 0,255,255, }}, {{ 19, 32, 2, 0, 0, 2, 16, 60, 32,194,159,191, 60, 0,255,255, }}, {{ 19, 32, 2, 0, 0, 2, 0, 60, 48,194,127,255, 60, 0,255,255, }}, {{ 19, 0,128, 3, 0, 0, 4,208,128,123,160, 0,255,255,227,255, }}, {{ 1, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,240,255,255,255,255, }}, {{ 105,218, 15, 1, 81, 19, 0,196,160,192, 0,204,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248, 1, 0, }}, {{ 0,240, 0, 1, 0, 0, 0, 32, 0, 96,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 4, 9, 56,252, 0, 0, 0,252,255,255,255,255, }}, {{ 255,255,255,255, 0, 0, 0, 0,192,255, 0, 0, 0, 0,128,247, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, }}, {{ 128, 0, 0, 0, 0, 0, 0, 0,128,194,128,194, 0, 0, 0, 0, }}, {{ 128,194, 0, 0, 0,128,194,128,194,128,128, 0, 0,128, 0, 0, }}, {{ 0,128,194,128, 0, 0, 0, 0,128, 0, 0,248, 1, 0, 0,224, }}, {{ 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,255, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, }}, {{ 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 0,252,255,255, }}, {{ 0,128, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, }}, {{ 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, }}, {{ 0, 0,192,192, 0, 0, 0, 0,192,192, 0, 85, 0, 0, 0,192, }}, {{ 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 48, 16, 0, 0, 35,128, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0,128,192,255,255,255, 3, 14, 0, }}, {{ 0,128,255,255, 0, 0,255,255,255,255, 0, 0,240,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0,248,255,255, 7, 0, 0, 0, 0, 0, }}, {{ 240,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, }}, {{ 0, 0, 0,248,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,128,255,255,255, 0,248,255,255, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255,255, }}, {{ 0, 0,192,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, }}, {{ 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,255, }}, {{ 33, 12, 0, 0, 0, 1, 0, 0, 0, 80,184,128, 1,255, 63, 0, }}, {{ 0, 0,224, 0, 0, 0, 1,128,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255, 0,240, }}, {{ 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0,224,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, }}, {{ 31, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0,128, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0,224, 0, 0, 0, 0,240,255,255,255, 0, 0, 0,112, }}, {{ 0, 0, 0, 0, 0, 0,254,255, 0,240, 0, 0, 0, 0, 0,128, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,128, }}, {{ 0, 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0,224, 0, 0, 12, 0, 16, 0,162,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255, }}, {{ 128,255, 7, 31, 0, 0,128,160, 36, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0,252,255,255,255, 7, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 3, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0,240, }}, {{ 255,255,255,255,240,255, 0, 0,224, 1, 8, 0,128,240, 40, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0,128, 3, 3, 3,227,128,128,255, 1, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 63, }}, }; #define nameprep_id03_map_imap nameprep_id02_map_imap #define nameprep_id03_map_table nameprep_id02_map_table #define nameprep_id03_map_data nameprep_id02_map_data static unsigned short nameprep_id03_prohibited_imap[] = { 68, 196, 196, 324, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 196, 196, 196, 452, 580, 580, 580, 580, 580, 580, 580, 580, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, }; static struct { unsigned char bm[16]; } nameprep_id03_prohibited_bitmap[] = { {{ 255,255,255,255,255,223, 0,252, 1, 0, 0,248, 1, 0, 0,248, }}, {{ 255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 255,207, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, }}, {{ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, }}, }; static unsigned short nameprep_id03_unassigned_imap[] = { 68, 196, 324, 452, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 580, 580, 580, 708, 836, 836, 836, 836, 836, 836, 836, 836, 0, 0, 0, 0, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 36, 37, 12, 38, 39, 40, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 41, 42, 43, 44, 45, 46, 47, 0, 48, 49, 50, 51, 52, 0, 53, 54, 12, 55, 56, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 57, 0, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 12, 72, 73, 0, 0, 74, 75, 76, 77, 78, 79, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static struct { unsigned char bm[16]; } nameprep_id03_unassigned_bitmap[] = { {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 3, 0,240,255,255,255, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,248,255,207,187, }}, {{ 15, 40, 0, 0, 4, 0, 0, 0, 0,128, 0, 3, 0, 0,240,255, }}, {{ 128, 12, 0, 0, 0, 0, 0, 0, 96,230, 0, 0, 0, 0,192,252, }}, {{ 255,255,255,255,255,255, 1, 0, 0, 0,128, 1, 1, 0, 0, 0, }}, {{ 0,249, 1, 0, 4, 0, 0, 4,224,255, 0, 0, 0,248,224,255, }}, {{ 255,239,255,119, 1, 0, 0,248, 0, 0,192,255, 0,192, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0,128, }}, {{ 0, 64, 0, 0, 0,224, 0, 0, 0,248,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0,254,255,255,255,255,255,255,255,255,255, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 17, 0, 0, 0, 0, 0, 0, 12, 0,192,224, 0, 0, 0,254,255, }}, {{ 17, 96, 6, 0, 0, 2, 58, 44, 96,198,127, 79, 48, 0, 0,248, }}, {{ 27,120, 6, 0, 0, 2,146, 44,120,198,255,161, 63, 0,224,255, }}, {{ 17, 80, 4, 0, 0, 2, 18, 12, 64,196,254,255, 62, 0,255,255, }}, {{ 17, 96, 6, 0, 0, 2, 50, 12,112,198, 63, 79, 60, 0,254,255, }}, {{ 19, 56,194, 41,231, 56, 64, 60, 56,194,127,255,127, 0,248,255, }}, {{ 17, 32, 2, 0, 0, 2, 16, 60, 32,194,159,255, 60, 0,255,255, }}, {{ 19, 32, 2, 0, 0, 2, 16, 60, 32,194,159,191, 60, 0,255,255, }}, {{ 19, 32, 2, 0, 0, 2, 0, 60, 48,194,127,255, 60, 0,255,255, }}, {{ 19, 0,128, 3, 0, 0, 4,208,128,123,160, 0,255,255,227,255, }}, {{ 1, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,240,255,255,255,255, }}, {{ 105,218, 15, 1, 81, 19, 0,196,160,192, 0,204,255,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248, 1, 0, }}, {{ 0,240, 0, 1, 0, 0, 0, 32, 0, 96,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 4, 9, 56,252, 0, 0, 0,252,255,255,255,255, }}, {{ 255,255,255,255, 0, 0, 0, 0,192,255, 0, 0, 0, 0,128,247, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, }}, {{ 128, 0, 0, 0, 0, 0, 0, 0,128,194,128,194, 0, 0, 0, 0, }}, {{ 128,194, 0, 0, 0,128,194,128,194,128,128, 0, 0,128, 0, 0, }}, {{ 0,128,194,128, 0, 0, 0, 0,128, 0, 0,248, 1, 0, 0,224, }}, {{ 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,255, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, }}, {{ 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 0,252,255,255, }}, {{ 0,128, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, }}, {{ 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, }}, {{ 0, 0,192,192, 0, 0, 0, 0,192,192, 0, 85, 0, 0, 0,192, }}, {{ 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 48, 16, 0, 0, 35,128, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0,128,192,255,255,255, 3, 14, 0, }}, {{ 0,128,255,255, 0, 0,255,255,255,255, 0, 0,240,255,255,255, }}, {{ 0, 0, 0, 0, 0, 0, 0,248,255,255, 7, 0, 0, 0, 0, 0, }}, {{ 240,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, }}, {{ 0, 0, 0,248,255,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,128,255,255,255, 0,248,255,255, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255,255, }}, {{ 0, 0,192,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, }}, {{ 0, 0,240, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,255, }}, {{ 33, 12, 0, 0, 0, 1, 0, 0, 0, 80,184,128, 1,255, 63, 0, }}, {{ 0, 0,224, 0, 0, 0, 1,128,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255, 0,240, }}, {{ 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0,224,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, }}, {{ 31, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0,128, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0,224, 0, 0, 0, 0,240,255,255,255, 0, 0, 0,112, }}, {{ 0, 0, 0, 0, 0, 0,254,255, 0,240, 0, 0, 0, 0, 0,128, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,128, }}, {{ 0, 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0,224, 0, 0, 12, 0, 16, 0,162,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255, }}, {{ 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255, }}, {{ 128,255, 7, 31, 0, 0,128,160, 36, 0, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0,252,255,255,255, 7, 0, 0, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, }}, {{ 0, 0, 3, 0, 0, 0, 0, 0, 0,255,255,255,255,255, 0,240, }}, {{ 255,255,255,255,240,255, 0, 0,224, 1, 8, 0,128,240, 40, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, }}, {{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, }}, {{ 0, 0, 0, 0, 0, 0, 0,128, 3, 3, 3,227,128,128,255, 1, }}, {{ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 63, }}, };