static const unsigned char tab0[] = { 17, 18, 19, 20, 21, 22, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 23, 16, 16, 24, 16, 16, 16, 16, 16, 16, 16, 16, 25, 26, 27, 28, 16, 29, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 30, 31, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 32, 33, 16, 16, 16, 34, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 35, 16, 16, 16, 16, 36, 16, 16, 16, 16, 16, 16, 16, 37, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 38, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 39, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 0, 0, 128, 0, 255, 255, 255, 127, 85, 85, 85, 85, 85, 85, 84, 171, 170, 86, 85, 85, 85, 85, 85, 42, 148, 40, 2, 9, 149, 156, 40, 93, 15, 160, 170, 74, 85, 85, 17, 85, 170, 170, 170, 170, 170, 170, 250, 19, 132, 170, 32, 229, 148, 96, 217, 223, 118, 224, 251, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 255, 255, 255, 186, 71, 191, 47, 1, 0, 4, 0, 255, 255, 251, 15, 28, 170, 170, 170, 64, 25, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 253, 87, 85, 85, 85, 85, 85, 85, 170, 42, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 254, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 191, 32, 0, 0, 0, 0, 0, 0, 255, 255, 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, 255, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 255, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 213, 183, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 255, 0, 255, 192, 255, 0, 255, 0, 255, 192, 255, 85, 255, 0, 0, 192, 255, 0, 255, 0, 255, 0, 247, 160, 247, 224, 255, 240, 223, 224, 247, 224, 255, 255, 255, 255, 191, 243, 251, 255, 255, 191, 255, 255, 0, 0, 255, 255, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 128, 137, 10, 182, 63, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 245, 175, 247, 255, 255, 255, 255, 255, 191, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 21, 0, 0, 85, 85, 85, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 171, 170, 171, 170, 170, 170, 170, 170, 170, 170, 255, 149, 170, 215, 186, 170, 170, 130, 160, 255, 255, 255, 255, 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 3, 0, 0, 0, 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 const unsigned char tab1[] = { 17, 18, 19, 20, 21, 22, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 23, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, 25, 16, 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 27, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 28, 29, 16, 16, 16, 30, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 32, 16, 16, 16, 16, 16, 16, 16, 33, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 34, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 35, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 7, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 127, 127, 255, 255, 127, 127, 170, 170, 170, 170, 170, 170, 168, 85, 85, 171, 170, 170, 170, 170, 170, 84, 40, 49, 4, 10, 42, 45, 81, 110, 15, 64, 85, 149, 170, 170, 33, 170, 255, 255, 255, 255, 252, 255, 15, 24, 198, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 7, 254, 255, 251, 15, 254, 255, 251, 15, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 170, 170, 170, 170, 254, 171, 170, 170, 170, 170, 170, 170, 84, 85, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 234, 183, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 255, 192, 255, 0, 255, 0, 255, 192, 255, 85, 255, 0, 255, 0, 192, 0, 255, 0, 255, 0, 255, 244, 163, 247, 224, 252, 243, 220, 227, 247, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 10, 21, 72, 192, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 10, 80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 42, 0, 0, 170, 170, 170, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 252, 255, 255, 255, 255, 255, 255, 255, 0, 222, 255, 24, 207, 255, 255, 3, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 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, 0, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const unsigned char tab2[] = { 16, 16, 16, 17, 18, 19, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 56, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 128, 13, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 252, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 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, 255, 255, 255, 255, 255, 8, 0, 146, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 135, 243, 255, }; static const int rules[] = { 0x302, 0x0, 0x2001, -0x2000, 0x2e700, 0x1dbf00, 0x7900, 0x32c02, 0x101, -0x100, 0x0, -0xc6ff, -0xe800, -0x78ff, -0x12c00, 0xc300, 0xd201, 0xce01, 0xcd01, 0x4f01, 0xca01, 0xcb01, 0xcf01, 0x6100, 0xd301, 0xd101, 0xa300, 0xd501, 0x8200, 0xd601, 0xda01, 0xd901, 0xdb01, 0x3800, 0x201, 0x2, -0x200, -0x4f00, -0x60ff, -0x37ff, 0x2f2d02, 0x0, 0x101, -0x100, -0x81ff, 0x2a2b01, -0xa2ff, 0x2a2801, 0x2a3f00, -0xc2ff, 0x4501, 0x4701, 0x2a1f00, 0x2a1c00, 0x2a1e00, -0xd200, -0xce00, -0xcd00, -0xca00, -0xcb00, 0xa54f00, 0xa54b00, -0xcf00, 0xa52800, 0xa54400, -0xd100, -0xd300, 0x29f700, 0xa54100, 0x29fd00, -0xd500, -0xd600, 0x29e700, -0xda00, 0xa52a00, -0x4500, -0xd900, -0x4700, -0xdb00, 0xa51500, 0xa51200, 0x5c1e02, 0x0, 0x2001, -0x2000, 0x101, -0x100, 0x8200, 0x2501, 0x5400, 0x7401, 0x2601, 0x4001, 0x3f01, -0x2600, -0x2500, -0x1f00, -0x4000, -0x3f00, 0x801, -0x3e00, -0x3900, -0x2f00, -0x3600, -0x800, -0x5600, -0x5000, 0x700, -0x7400, -0x3bff, -0x6000, -0x6ff, 0x7a0202, 0x101, -0x100, 0x2001, -0x2000, 0x5001, -0x5000, 0x0, 0xf01, -0xf00, 0x0, 0x3001, -0x3000, 0x101, -0x100, 0x0, 0x1c6001, 0x7c0602, 0x0, 0x97d001, 0x801, 0x820902, 0x0, -0x186e00, -0x186d00, -0x186400, -0x186200, -0x186300, -0x185c00, -0x182500, 0x89c200, 0x8b0202, 0x0, 0x8a0400, 0xee600, 0x8d0202, 0x101, -0x100, 0x0, -0x3b00, -0x1dbeff, 0x8f2502, 0x800, -0x7ff, 0x0, 0x4a00, 0x5600, 0x6400, 0x8000, 0x7000, 0x7e00, 0x900, -0x49ff, -0x8ff, -0x1c2500, -0x55ff, -0x63ff, -0x6fff, -0x7fff, -0x7dff, 0xb40702, 0x0, 0x1001, -0x1000, -0x1d5cff, -0x20beff, -0x2045ff, 0x1c01, -0x1c00, 0xbb0802, 0x101, -0x100, 0x3001, -0x3000, 0x0, -0x2a3eff, -0xee5ff, -0x29f6ff, -0x29e6ff, -0x2a2b00, -0x2a2800, -0x2a1bff, -0x29fcff, -0x2a1eff, -0x2a1dff, 0x0, -0x1c6000, 0x0, 0x101, -0x100, 0xc30b02, 0x0, 0x101, -0x100, -0x8a03ff, -0xa527ff, -0xa543ff, -0xa54eff, -0xa54aff, -0xa540ff, -0xa511ff, -0xa529ff, -0xa514ff, 0x3a001, 0xce0002, 0x0, -0x97d000, -0x3a000, 0x0, 0x2001, -0x2000, 0x0, 0x2801, -0x2800, 0x0, 0x4001, -0x4000, 0x0, 0x2001, -0x2000, 0x0, 0x2201, -0x2200, }; static const unsigned char rulebases[] = { 0, 7, 40, 81, 112, 122, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 1, 1, 129, 1, 1, 1, 1, 1, 1, 1, 1, 133, 143, 147, 153, 1, 172, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 181, 197, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 199, 202, 1, 1, 1, 216, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 220, 1, 1, 1, 1, 223, 1, 1, 1, 1, 1, 1, 1, 226, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 229, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 232, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; static const unsigned char exceptions[][2] = { { 181, 4 }, { 223, 5 }, { 255, 6 }, { 48, 11 }, { 49, 12 }, { 120, 13 }, { 127, 14 }, { 128, 15 }, { 129, 16 }, { 134, 17 }, { 137, 18 }, { 138, 18 }, { 142, 19 }, { 143, 20 }, { 144, 21 }, { 147, 18 }, { 148, 22 }, { 149, 23 }, { 150, 24 }, { 151, 25 }, { 154, 26 }, { 156, 24 }, { 157, 27 }, { 158, 28 }, { 159, 29 }, { 166, 30 }, { 169, 30 }, { 174, 30 }, { 177, 31 }, { 178, 31 }, { 183, 32 }, { 191, 33 }, { 196, 34 }, { 197, 35 }, { 198, 36 }, { 199, 34 }, { 200, 35 }, { 201, 36 }, { 202, 34 }, { 203, 35 }, { 204, 36 }, { 221, 37 }, { 241, 34 }, { 242, 35 }, { 243, 36 }, { 246, 38 }, { 247, 39 }, { 32, 44 }, { 58, 45 }, { 61, 46 }, { 62, 47 }, { 63, 48 }, { 64, 48 }, { 67, 49 }, { 68, 50 }, { 69, 51 }, { 80, 52 }, { 81, 53 }, { 82, 54 }, { 83, 55 }, { 84, 56 }, { 86, 57 }, { 87, 57 }, { 89, 58 }, { 91, 59 }, { 92, 60 }, { 96, 57 }, { 97, 61 }, { 99, 62 }, { 101, 63 }, { 102, 64 }, { 104, 65 }, { 105, 66 }, { 106, 64 }, { 107, 67 }, { 108, 68 }, { 111, 66 }, { 113, 69 }, { 114, 70 }, { 117, 71 }, { 125, 72 }, { 128, 73 }, { 131, 73 }, { 135, 74 }, { 136, 73 }, { 137, 75 }, { 138, 76 }, { 139, 76 }, { 140, 77 }, { 146, 78 }, { 157, 79 }, { 158, 80 }, { 69, 89 }, { 127, 90 }, { 134, 91 }, { 140, 92 }, { 142, 93 }, { 143, 93 }, { 172, 94 }, { 173, 95 }, { 174, 95 }, { 175, 95 }, { 194, 96 }, { 204, 97 }, { 205, 98 }, { 206, 98 }, { 207, 99 }, { 208, 100 }, { 209, 101 }, { 213, 102 }, { 214, 103 }, { 215, 104 }, { 240, 105 }, { 241, 106 }, { 242, 107 }, { 243, 108 }, { 244, 109 }, { 245, 110 }, { 249, 111 }, { 253, 44 }, { 254, 44 }, { 255, 44 }, { 192, 120 }, { 207, 121 }, { 248, 104 }, { 249, 104 }, { 250, 104 }, { 251, 104 }, { 252, 104 }, { 253, 104 }, { 128, 135 }, { 129, 136 }, { 130, 137 }, { 131, 138 }, { 132, 138 }, { 133, 139 }, { 134, 140 }, { 135, 141 }, { 136, 142 }, { 121, 145 }, { 125, 146 }, { 155, 151 }, { 158, 152 }, { 112, 157 }, { 113, 157 }, { 114, 158 }, { 115, 158 }, { 116, 158 }, { 117, 158 }, { 118, 159 }, { 119, 159 }, { 120, 160 }, { 121, 160 }, { 122, 161 }, { 123, 161 }, { 124, 162 }, { 125, 162 }, { 179, 163 }, { 186, 164 }, { 187, 164 }, { 188, 165 }, { 190, 166 }, { 195, 163 }, { 200, 167 }, { 201, 167 }, { 202, 167 }, { 203, 167 }, { 204, 165 }, { 218, 168 }, { 219, 168 }, { 229, 107 }, { 234, 169 }, { 235, 169 }, { 236, 111 }, { 243, 163 }, { 248, 170 }, { 249, 170 }, { 250, 171 }, { 251, 171 }, { 252, 165 }, { 38, 176 }, { 42, 177 }, { 43, 178 }, { 50, 179 }, { 78, 180 }, { 131, 8 }, { 132, 9 }, { 98, 189 }, { 100, 190 }, { 101, 191 }, { 102, 192 }, { 109, 193 }, { 110, 194 }, { 111, 195 }, { 112, 196 }, { 125, 206 }, { 141, 207 }, { 170, 208 }, { 171, 209 }, { 172, 210 }, { 173, 211 }, { 174, 208 }, { 176, 212 }, { 177, 213 }, { 178, 214 }, { 179, 215 }, };