// NeL - MMORPG Framework // Copyright (C) 2020 Jan BOON (Kaetemi) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "stdmisc.h" #include "nel/misc/ucstring.h" #include "nel/misc/utf_string_view.h" #ifdef DEBUG_NEW #define new DEBUG_NEW #endif namespace NLMISC { static const char s_StringToCaseInsensitiveC2[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCE', '\xBC', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveC3[64 * 4] = { '\xC3', '\xA0', '\x00', 0, '\xC3', '\xA1', '\x00', 0, '\xC3', '\xA2', '\x00', 0, '\xC3', '\xA3', '\x00', 0, '\xC3', '\xA4', '\x00', 0, '\xC3', '\xA5', '\x00', 0, '\xC3', '\xA6', '\x00', 0, '\xC3', '\xA7', '\x00', 0, '\xC3', '\xA8', '\x00', 0, '\xC3', '\xA9', '\x00', 0, '\xC3', '\xAA', '\x00', 0, '\xC3', '\xAB', '\x00', 0, '\xC3', '\xAC', '\x00', 0, '\xC3', '\xAD', '\x00', 0, '\xC3', '\xAE', '\x00', 0, '\xC3', '\xAF', '\x00', 0, '\xC3', '\xB0', '\x00', 0, '\xC3', '\xB1', '\x00', 0, '\xC3', '\xB2', '\x00', 0, '\xC3', '\xB3', '\x00', 0, '\xC3', '\xB4', '\x00', 0, '\xC3', '\xB5', '\x00', 0, '\xC3', '\xB6', '\x00', 0, 0, 0, 0, 0, '\xC3', '\xB8', '\x00', 0, '\xC3', '\xB9', '\x00', 0, '\xC3', '\xBA', '\x00', 0, '\xC3', '\xBB', '\x00', 0, '\xC3', '\xBC', '\x00', 0, '\xC3', '\xBD', '\x00', 0, '\xC3', '\xBE', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveC4[64 * 4] = { '\xC4', '\x81', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x83', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x85', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x87', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x89', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x8F', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x91', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x93', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x95', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x97', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x99', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xC4', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xAF', '\x00', 0, 0, 0, 0, 0, '\x69', '\x00', '\x00', 0, '\x69', '\x00', '\x00', 0, '\xC4', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xB7', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC4', '\xBA', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xBC', '\x00', 0, 0, 0, 0, 0, '\xC4', '\xBE', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x80', '\x00', 0, }; static const char s_StringToCaseInsensitiveC5[64 * 4] = { 0, 0, 0, 0, '\xC5', '\x82', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x84', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x86', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x88', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC5', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x8F', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x91', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x93', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x95', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x97', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x99', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xC5', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xB7', '\x00', 0, 0, 0, 0, 0, '\xC3', '\xBF', '\x00', 0, '\xC5', '\xBA', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xBC', '\x00', 0, 0, 0, 0, 0, '\xC5', '\xBE', '\x00', 0, 0, 0, 0, 0, '\x73', '\x00', '\x00', 0, }; static const char s_StringToCaseInsensitiveC6[64 * 4] = { 0, 0, 0, 0, '\xC9', '\x93', '\x00', 0, '\xC6', '\x83', '\x00', 0, 0, 0, 0, 0, '\xC6', '\x85', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x94', '\x00', 0, '\xC6', '\x88', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x96', '\x00', 0, '\xC9', '\x97', '\x00', 0, '\xC6', '\x8C', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC7', '\x9D', '\x00', 0, '\xC9', '\x99', '\x00', 0, '\xC9', '\x9B', '\x00', 0, '\xC6', '\x92', '\x00', 0, 0, 0, 0, 0, '\xC9', '\xA0', '\x00', 0, '\xC9', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC9', '\xA9', '\x00', 0, '\xC9', '\xA8', '\x00', 0, '\xC6', '\x99', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC9', '\xAF', '\x00', 0, '\xC9', '\xB2', '\x00', 0, 0, 0, 0, 0, '\xC9', '\xB5', '\x00', 0, '\xC6', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xC6', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC6', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x80', '\x00', 0, '\xC6', '\xA8', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x83', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC6', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x88', '\x00', 0, '\xC6', '\xB0', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x8A', '\x00', 0, '\xCA', '\x8B', '\x00', 0, '\xC6', '\xB4', '\x00', 0, 0, 0, 0, 0, '\xC6', '\xB6', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x92', '\x00', 0, '\xC6', '\xB9', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC6', '\xBD', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveC7[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC7', '\x86', '\x00', 0, '\xC7', '\x86', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x89', '\x00', 0, '\xC7', '\x89', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x8C', '\x00', 0, '\xC7', '\x8C', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x8E', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x90', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x92', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x94', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x96', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x98', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x9A', '\x00', 0, 0, 0, 0, 0, '\xC7', '\x9C', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC7', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xAF', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC7', '\xB3', '\x00', 0, '\xC7', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xC6', '\x95', '\x00', 0, '\xC6', '\xBF', '\x00', 0, '\xC7', '\xB9', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xBB', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xBD', '\x00', 0, 0, 0, 0, 0, '\xC7', '\xBF', '\x00', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveC8[64 * 4] = { '\xC8', '\x81', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x83', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x85', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x87', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x89', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x8F', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x91', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x93', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x95', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x97', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x99', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xC8', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xC6', '\x9E', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xC8', '\xB3', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xA5', 0, '\xC8', '\xBC', '\x00', 0, 0, 0, 0, 0, '\xC6', '\x9A', '\x00', 0, '\xE2', '\xB1', '\xA6', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveC9[64 * 4] = { 0, 0, 0, 0, '\xC9', '\x82', '\x00', 0, 0, 0, 0, 0, '\xC6', '\x80', '\x00', 0, '\xCA', '\x89', '\x00', 0, '\xCA', '\x8C', '\x00', 0, '\xC9', '\x87', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x89', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xC9', '\x8F', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveCD[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCE', '\xB9', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCD', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xCD', '\xB3', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCD', '\xB7', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCF', '\xB3', '\x00', 0, }; static const char s_StringToCaseInsensitiveCE[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCE', '\xAC', '\x00', 0, 0, 0, 0, 0, '\xCE', '\xAD', '\x00', 0, '\xCE', '\xAE', '\x00', 0, '\xCE', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x8C', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x8D', '\x00', 0, '\xCF', '\x8E', '\x00', 0, 0, 0, 0, 0, '\xCE', '\xB1', '\x00', 0, '\xCE', '\xB2', '\x00', 0, '\xCE', '\xB3', '\x00', 0, '\xCE', '\xB4', '\x00', 0, '\xCE', '\xB5', '\x00', 0, '\xCE', '\xB6', '\x00', 0, '\xCE', '\xB7', '\x00', 0, '\xCE', '\xB8', '\x00', 0, '\xCE', '\xB9', '\x00', 0, '\xCE', '\xBA', '\x00', 0, '\xCE', '\xBB', '\x00', 0, '\xCE', '\xBC', '\x00', 0, '\xCE', '\xBD', '\x00', 0, '\xCE', '\xBE', '\x00', 0, '\xCE', '\xBF', '\x00', 0, '\xCF', '\x80', '\x00', 0, '\xCF', '\x81', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x83', '\x00', 0, '\xCF', '\x84', '\x00', 0, '\xCF', '\x85', '\x00', 0, '\xCF', '\x86', '\x00', 0, '\xCF', '\x87', '\x00', 0, '\xCF', '\x88', '\x00', 0, '\xCF', '\x89', '\x00', 0, '\xCF', '\x8A', '\x00', 0, '\xCF', '\x8B', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveCF[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, '\xCF', '\x83', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCF', '\x97', '\x00', 0, '\xCE', '\xB2', '\x00', 0, '\xCE', '\xB8', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCF', '\x86', '\x00', 0, '\xCF', '\x80', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x99', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xCF', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xCE', '\xBA', '\x00', 0, '\xCF', '\x81', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCE', '\xB8', '\x00', 0, '\xCE', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xB8', '\x00', 0, 0, 0, 0, 0, '\xCF', '\xB2', '\x00', 0, '\xCF', '\xBB', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCD', '\xBB', '\x00', 0, '\xCD', '\xBC', '\x00', 0, '\xCD', '\xBD', '\x00', 0, }; static const char s_StringToCaseInsensitiveD0[64 * 4] = { '\xD1', '\x90', '\x00', 0, '\xD1', '\x91', '\x00', 0, '\xD1', '\x92', '\x00', 0, '\xD1', '\x93', '\x00', 0, '\xD1', '\x94', '\x00', 0, '\xD1', '\x95', '\x00', 0, '\xD1', '\x96', '\x00', 0, '\xD1', '\x97', '\x00', 0, '\xD1', '\x98', '\x00', 0, '\xD1', '\x99', '\x00', 0, '\xD1', '\x9A', '\x00', 0, '\xD1', '\x9B', '\x00', 0, '\xD1', '\x9C', '\x00', 0, '\xD1', '\x9D', '\x00', 0, '\xD1', '\x9E', '\x00', 0, '\xD1', '\x9F', '\x00', 0, '\xD0', '\xB0', '\x00', 0, '\xD0', '\xB1', '\x00', 0, '\xD0', '\xB2', '\x00', 0, '\xD0', '\xB3', '\x00', 0, '\xD0', '\xB4', '\x00', 0, '\xD0', '\xB5', '\x00', 0, '\xD0', '\xB6', '\x00', 0, '\xD0', '\xB7', '\x00', 0, '\xD0', '\xB8', '\x00', 0, '\xD0', '\xB9', '\x00', 0, '\xD0', '\xBA', '\x00', 0, '\xD0', '\xBB', '\x00', 0, '\xD0', '\xBC', '\x00', 0, '\xD0', '\xBD', '\x00', 0, '\xD0', '\xBE', '\x00', 0, '\xD0', '\xBF', '\x00', 0, '\xD1', '\x80', '\x00', 0, '\xD1', '\x81', '\x00', 0, '\xD1', '\x82', '\x00', 0, '\xD1', '\x83', '\x00', 0, '\xD1', '\x84', '\x00', 0, '\xD1', '\x85', '\x00', 0, '\xD1', '\x86', '\x00', 0, '\xD1', '\x87', '\x00', 0, '\xD1', '\x88', '\x00', 0, '\xD1', '\x89', '\x00', 0, '\xD1', '\x8A', '\x00', 0, '\xD1', '\x8B', '\x00', 0, '\xD1', '\x8C', '\x00', 0, '\xD1', '\x8D', '\x00', 0, '\xD1', '\x8E', '\x00', 0, '\xD1', '\x8F', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveD1[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xD1', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xB7', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xB9', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xBB', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xBD', '\x00', 0, 0, 0, 0, 0, '\xD1', '\xBF', '\x00', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveD2[64 * 4] = { '\xD2', '\x81', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xD2', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x8F', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x91', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x93', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x95', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x97', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x99', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xD2', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xB7', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xB9', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xBB', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xBD', '\x00', 0, 0, 0, 0, 0, '\xD2', '\xBF', '\x00', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveD3[64 * 4] = { '\xD3', '\x8F', '\x00', 0, '\xD3', '\x82', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x84', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x86', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x88', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x8A', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x8C', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x8E', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xD3', '\x91', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x93', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x95', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x97', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x99', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xD3', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xAF', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xB1', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xB3', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xB5', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xB7', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xB9', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xBB', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xBD', '\x00', 0, 0, 0, 0, 0, '\xD3', '\xBF', '\x00', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveD4[64 * 4] = { '\xD4', '\x81', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x83', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x85', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x87', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x89', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x8B', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x8D', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x8F', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x91', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x93', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x95', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x97', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x99', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x9B', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x9D', '\x00', 0, 0, 0, 0, 0, '\xD4', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xA1', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xA3', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xA5', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xA7', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xA9', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xAB', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xAD', '\x00', 0, 0, 0, 0, 0, '\xD4', '\xAF', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xD5', '\xA1', '\x00', 0, '\xD5', '\xA2', '\x00', 0, '\xD5', '\xA3', '\x00', 0, '\xD5', '\xA4', '\x00', 0, '\xD5', '\xA5', '\x00', 0, '\xD5', '\xA6', '\x00', 0, '\xD5', '\xA7', '\x00', 0, '\xD5', '\xA8', '\x00', 0, '\xD5', '\xA9', '\x00', 0, '\xD5', '\xAA', '\x00', 0, '\xD5', '\xAB', '\x00', 0, '\xD5', '\xAC', '\x00', 0, '\xD5', '\xAD', '\x00', 0, '\xD5', '\xAE', '\x00', 0, '\xD5', '\xAF', '\x00', 0, }; static const char s_StringToCaseInsensitiveD5[64 * 4] = { '\xD5', '\xB0', '\x00', 0, '\xD5', '\xB1', '\x00', 0, '\xD5', '\xB2', '\x00', 0, '\xD5', '\xB3', '\x00', 0, '\xD5', '\xB4', '\x00', 0, '\xD5', '\xB5', '\x00', 0, '\xD5', '\xB6', '\x00', 0, '\xD5', '\xB7', '\x00', 0, '\xD5', '\xB8', '\x00', 0, '\xD5', '\xB9', '\x00', 0, '\xD5', '\xBA', '\x00', 0, '\xD5', '\xBB', '\x00', 0, '\xD5', '\xBC', '\x00', 0, '\xD5', '\xBD', '\x00', 0, '\xD5', '\xBE', '\x00', 0, '\xD5', '\xBF', '\x00', 0, '\xD6', '\x80', '\x00', 0, '\xD6', '\x81', '\x00', 0, '\xD6', '\x82', '\x00', 0, '\xD6', '\x83', '\x00', 0, '\xD6', '\x84', '\x00', 0, '\xD6', '\x85', '\x00', 0, '\xD6', '\x86', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE182[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB4', '\x80', 0, '\xE2', '\xB4', '\x81', 0, '\xE2', '\xB4', '\x82', 0, '\xE2', '\xB4', '\x83', 0, '\xE2', '\xB4', '\x84', 0, '\xE2', '\xB4', '\x85', 0, '\xE2', '\xB4', '\x86', 0, '\xE2', '\xB4', '\x87', 0, '\xE2', '\xB4', '\x88', 0, '\xE2', '\xB4', '\x89', 0, '\xE2', '\xB4', '\x8A', 0, '\xE2', '\xB4', '\x8B', 0, '\xE2', '\xB4', '\x8C', 0, '\xE2', '\xB4', '\x8D', 0, '\xE2', '\xB4', '\x8E', 0, '\xE2', '\xB4', '\x8F', 0, '\xE2', '\xB4', '\x90', 0, '\xE2', '\xB4', '\x91', 0, '\xE2', '\xB4', '\x92', 0, '\xE2', '\xB4', '\x93', 0, '\xE2', '\xB4', '\x94', 0, '\xE2', '\xB4', '\x95', 0, '\xE2', '\xB4', '\x96', 0, '\xE2', '\xB4', '\x97', 0, '\xE2', '\xB4', '\x98', 0, '\xE2', '\xB4', '\x99', 0, '\xE2', '\xB4', '\x9A', 0, '\xE2', '\xB4', '\x9B', 0, '\xE2', '\xB4', '\x9C', 0, '\xE2', '\xB4', '\x9D', 0, '\xE2', '\xB4', '\x9E', 0, '\xE2', '\xB4', '\x9F', 0, }; static const char s_StringToCaseInsensitiveE183[64 * 4] = { '\xE2', '\xB4', '\xA0', 0, '\xE2', '\xB4', '\xA1', 0, '\xE2', '\xB4', '\xA2', 0, '\xE2', '\xB4', '\xA3', 0, '\xE2', '\xB4', '\xA4', 0, '\xE2', '\xB4', '\xA5', 0, 0, 0, 0, 0, '\xE2', '\xB4', '\xA7', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB4', '\xAD', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE18E[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\xAD', '\xB0', 0, '\xEA', '\xAD', '\xB1', 0, '\xEA', '\xAD', '\xB2', 0, '\xEA', '\xAD', '\xB3', 0, '\xEA', '\xAD', '\xB4', 0, '\xEA', '\xAD', '\xB5', 0, '\xEA', '\xAD', '\xB6', 0, '\xEA', '\xAD', '\xB7', 0, '\xEA', '\xAD', '\xB8', 0, '\xEA', '\xAD', '\xB9', 0, '\xEA', '\xAD', '\xBA', 0, '\xEA', '\xAD', '\xBB', 0, '\xEA', '\xAD', '\xBC', 0, '\xEA', '\xAD', '\xBD', 0, '\xEA', '\xAD', '\xBE', 0, '\xEA', '\xAD', '\xBF', 0, '\xEA', '\xAE', '\x80', 0, '\xEA', '\xAE', '\x81', 0, '\xEA', '\xAE', '\x82', 0, '\xEA', '\xAE', '\x83', 0, '\xEA', '\xAE', '\x84', 0, '\xEA', '\xAE', '\x85', 0, '\xEA', '\xAE', '\x86', 0, '\xEA', '\xAE', '\x87', 0, '\xEA', '\xAE', '\x88', 0, '\xEA', '\xAE', '\x89', 0, '\xEA', '\xAE', '\x8A', 0, '\xEA', '\xAE', '\x8B', 0, '\xEA', '\xAE', '\x8C', 0, '\xEA', '\xAE', '\x8D', 0, '\xEA', '\xAE', '\x8E', 0, '\xEA', '\xAE', '\x8F', 0, }; static const char s_StringToCaseInsensitiveE18F[64 * 4] = { '\xEA', '\xAE', '\x90', 0, '\xEA', '\xAE', '\x91', 0, '\xEA', '\xAE', '\x92', 0, '\xEA', '\xAE', '\x93', 0, '\xEA', '\xAE', '\x94', 0, '\xEA', '\xAE', '\x95', 0, '\xEA', '\xAE', '\x96', 0, '\xEA', '\xAE', '\x97', 0, '\xEA', '\xAE', '\x98', 0, '\xEA', '\xAE', '\x99', 0, '\xEA', '\xAE', '\x9A', 0, '\xEA', '\xAE', '\x9B', 0, '\xEA', '\xAE', '\x9C', 0, '\xEA', '\xAE', '\x9D', 0, '\xEA', '\xAE', '\x9E', 0, '\xEA', '\xAE', '\x9F', 0, '\xEA', '\xAE', '\xA0', 0, '\xEA', '\xAE', '\xA1', 0, '\xEA', '\xAE', '\xA2', 0, '\xEA', '\xAE', '\xA3', 0, '\xEA', '\xAE', '\xA4', 0, '\xEA', '\xAE', '\xA5', 0, '\xEA', '\xAE', '\xA6', 0, '\xEA', '\xAE', '\xA7', 0, '\xEA', '\xAE', '\xA8', 0, '\xEA', '\xAE', '\xA9', 0, '\xEA', '\xAE', '\xAA', 0, '\xEA', '\xAE', '\xAB', 0, '\xEA', '\xAE', '\xAC', 0, '\xEA', '\xAE', '\xAD', 0, '\xEA', '\xAE', '\xAE', 0, '\xEA', '\xAE', '\xAF', 0, '\xEA', '\xAE', '\xB0', 0, '\xEA', '\xAE', '\xB1', 0, '\xEA', '\xAE', '\xB2', 0, '\xEA', '\xAE', '\xB3', 0, '\xEA', '\xAE', '\xB4', 0, '\xEA', '\xAE', '\xB5', 0, '\xEA', '\xAE', '\xB6', 0, '\xEA', '\xAE', '\xB7', 0, '\xEA', '\xAE', '\xB8', 0, '\xEA', '\xAE', '\xB9', 0, '\xEA', '\xAE', '\xBA', 0, '\xEA', '\xAE', '\xBB', 0, '\xEA', '\xAE', '\xBC', 0, '\xEA', '\xAE', '\xBD', 0, '\xEA', '\xAE', '\xBE', 0, '\xEA', '\xAE', '\xBF', 0, '\xE1', '\x8F', '\xB8', 0, '\xE1', '\x8F', '\xB9', 0, '\xE1', '\x8F', '\xBA', 0, '\xE1', '\x8F', '\xBB', 0, '\xE1', '\x8F', '\xBC', 0, '\xE1', '\x8F', '\xBD', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE1B2[64 * 4] = { '\xD0', '\xB2', '\x00', 0, '\xD0', '\xB4', '\x00', 0, '\xD0', '\xBE', '\x00', 0, '\xD1', '\x81', '\x00', 0, '\xD1', '\x82', '\x00', 0, '\xD1', '\x82', '\x00', 0, '\xD1', '\x8A', '\x00', 0, '\xD1', '\xA3', '\x00', 0, '\xEA', '\x99', '\x8B', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\x83', '\x90', 0, '\xE1', '\x83', '\x91', 0, '\xE1', '\x83', '\x92', 0, '\xE1', '\x83', '\x93', 0, '\xE1', '\x83', '\x94', 0, '\xE1', '\x83', '\x95', 0, '\xE1', '\x83', '\x96', 0, '\xE1', '\x83', '\x97', 0, '\xE1', '\x83', '\x98', 0, '\xE1', '\x83', '\x99', 0, '\xE1', '\x83', '\x9A', 0, '\xE1', '\x83', '\x9B', 0, '\xE1', '\x83', '\x9C', 0, '\xE1', '\x83', '\x9D', 0, '\xE1', '\x83', '\x9E', 0, '\xE1', '\x83', '\x9F', 0, '\xE1', '\x83', '\xA0', 0, '\xE1', '\x83', '\xA1', 0, '\xE1', '\x83', '\xA2', 0, '\xE1', '\x83', '\xA3', 0, '\xE1', '\x83', '\xA4', 0, '\xE1', '\x83', '\xA5', 0, '\xE1', '\x83', '\xA6', 0, '\xE1', '\x83', '\xA7', 0, '\xE1', '\x83', '\xA8', 0, '\xE1', '\x83', '\xA9', 0, '\xE1', '\x83', '\xAA', 0, '\xE1', '\x83', '\xAB', 0, '\xE1', '\x83', '\xAC', 0, '\xE1', '\x83', '\xAD', 0, '\xE1', '\x83', '\xAE', 0, '\xE1', '\x83', '\xAF', 0, '\xE1', '\x83', '\xB0', 0, '\xE1', '\x83', '\xB1', 0, '\xE1', '\x83', '\xB2', 0, '\xE1', '\x83', '\xB3', 0, '\xE1', '\x83', '\xB4', 0, '\xE1', '\x83', '\xB5', 0, '\xE1', '\x83', '\xB6', 0, '\xE1', '\x83', '\xB7', 0, '\xE1', '\x83', '\xB8', 0, '\xE1', '\x83', '\xB9', 0, '\xE1', '\x83', '\xBA', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\x83', '\xBD', 0, '\xE1', '\x83', '\xBE', 0, '\xE1', '\x83', '\xBF', 0, }; static const char s_StringToCaseInsensitiveE1B8[64 * 4] = { '\xE1', '\xB8', '\x81', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x83', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x85', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x87', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x89', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x8B', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x8D', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x8F', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x91', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x93', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x95', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x97', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x99', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x9B', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x9D', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\x9F', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xA1', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xA3', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xA5', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xA7', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xA9', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xAB', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xAD', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xAF', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xB1', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xB3', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xB5', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xB7', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xB9', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xBB', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xBD', 0, 0, 0, 0, 0, '\xE1', '\xB8', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE1B9[64 * 4] = { '\xE1', '\xB9', '\x81', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x83', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x85', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x87', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x89', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x8B', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x8D', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x8F', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x91', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x93', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x95', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x97', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x99', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x9B', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x9D', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\x9F', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA1', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA3', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA5', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA7', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA9', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xAB', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xAD', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xAF', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xB1', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xB3', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xB5', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xB7', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xB9', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xBB', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xBD', 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE1BA[64 * 4] = { '\xE1', '\xBA', '\x81', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x83', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x85', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x87', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x89', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x8B', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x8D', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x8F', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x91', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x93', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\x95', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xB9', '\xA1', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC3', '\x9F', '\x00', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xA1', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xA3', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xA5', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xA7', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xA9', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xAB', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xAD', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xAF', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xB1', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xB3', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xB5', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xB7', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xB9', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xBB', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xBD', 0, 0, 0, 0, 0, '\xE1', '\xBA', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE1BB[64 * 4] = { '\xE1', '\xBB', '\x81', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x83', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x85', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x87', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x89', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x8B', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x8D', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x8F', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x91', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x93', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x95', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x97', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x99', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x9B', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x9D', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\x9F', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xA1', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xA3', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xA5', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xA7', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xA9', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xAB', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xAD', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xAF', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xB1', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xB3', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xB5', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xB7', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xB9', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xBB', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xBD', 0, 0, 0, 0, 0, '\xE1', '\xBB', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE1BC[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBC', '\x80', 0, '\xE1', '\xBC', '\x81', 0, '\xE1', '\xBC', '\x82', 0, '\xE1', '\xBC', '\x83', 0, '\xE1', '\xBC', '\x84', 0, '\xE1', '\xBC', '\x85', 0, '\xE1', '\xBC', '\x86', 0, '\xE1', '\xBC', '\x87', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBC', '\x90', 0, '\xE1', '\xBC', '\x91', 0, '\xE1', '\xBC', '\x92', 0, '\xE1', '\xBC', '\x93', 0, '\xE1', '\xBC', '\x94', 0, '\xE1', '\xBC', '\x95', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBC', '\xA0', 0, '\xE1', '\xBC', '\xA1', 0, '\xE1', '\xBC', '\xA2', 0, '\xE1', '\xBC', '\xA3', 0, '\xE1', '\xBC', '\xA4', 0, '\xE1', '\xBC', '\xA5', 0, '\xE1', '\xBC', '\xA6', 0, '\xE1', '\xBC', '\xA7', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBC', '\xB0', 0, '\xE1', '\xBC', '\xB1', 0, '\xE1', '\xBC', '\xB2', 0, '\xE1', '\xBC', '\xB3', 0, '\xE1', '\xBC', '\xB4', 0, '\xE1', '\xBC', '\xB5', 0, '\xE1', '\xBC', '\xB6', 0, '\xE1', '\xBC', '\xB7', 0, }; static const char s_StringToCaseInsensitiveE1BD[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBD', '\x80', 0, '\xE1', '\xBD', '\x81', 0, '\xE1', '\xBD', '\x82', 0, '\xE1', '\xBD', '\x83', 0, '\xE1', '\xBD', '\x84', 0, '\xE1', '\xBD', '\x85', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBD', '\x91', 0, 0, 0, 0, 0, '\xE1', '\xBD', '\x93', 0, 0, 0, 0, 0, '\xE1', '\xBD', '\x95', 0, 0, 0, 0, 0, '\xE1', '\xBD', '\x97', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBD', '\xA0', 0, '\xE1', '\xBD', '\xA1', 0, '\xE1', '\xBD', '\xA2', 0, '\xE1', '\xBD', '\xA3', 0, '\xE1', '\xBD', '\xA4', 0, '\xE1', '\xBD', '\xA5', 0, '\xE1', '\xBD', '\xA6', 0, '\xE1', '\xBD', '\xA7', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE1BE[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBE', '\x80', 0, '\xE1', '\xBE', '\x81', 0, '\xE1', '\xBE', '\x82', 0, '\xE1', '\xBE', '\x83', 0, '\xE1', '\xBE', '\x84', 0, '\xE1', '\xBE', '\x85', 0, '\xE1', '\xBE', '\x86', 0, '\xE1', '\xBE', '\x87', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBE', '\x90', 0, '\xE1', '\xBE', '\x91', 0, '\xE1', '\xBE', '\x92', 0, '\xE1', '\xBE', '\x93', 0, '\xE1', '\xBE', '\x94', 0, '\xE1', '\xBE', '\x95', 0, '\xE1', '\xBE', '\x96', 0, '\xE1', '\xBE', '\x97', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBE', '\xA0', 0, '\xE1', '\xBE', '\xA1', 0, '\xE1', '\xBE', '\xA2', 0, '\xE1', '\xBE', '\xA3', 0, '\xE1', '\xBE', '\xA4', 0, '\xE1', '\xBE', '\xA5', 0, '\xE1', '\xBE', '\xA6', 0, '\xE1', '\xBE', '\xA7', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBE', '\xB0', 0, '\xE1', '\xBE', '\xB1', 0, '\xE1', '\xBD', '\xB0', 0, '\xE1', '\xBD', '\xB1', 0, '\xE1', '\xBE', '\xB3', 0, 0, 0, 0, 0, '\xCE', '\xB9', '\x00', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE1BF[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBD', '\xB2', 0, '\xE1', '\xBD', '\xB3', 0, '\xE1', '\xBD', '\xB4', 0, '\xE1', '\xBD', '\xB5', 0, '\xE1', '\xBF', '\x83', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBF', '\x90', 0, '\xE1', '\xBF', '\x91', 0, '\xE1', '\xBD', '\xB6', 0, '\xE1', '\xBD', '\xB7', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBF', '\xA0', 0, '\xE1', '\xBF', '\xA1', 0, '\xE1', '\xBD', '\xBA', 0, '\xE1', '\xBD', '\xBB', 0, '\xE1', '\xBF', '\xA5', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE1', '\xBD', '\xB8', 0, '\xE1', '\xBD', '\xB9', 0, '\xE1', '\xBD', '\xBC', 0, '\xE1', '\xBD', '\xBD', 0, '\xE1', '\xBF', '\xB3', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE284[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xCF', '\x89', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\x6B', '\x00', '\x00', 0, '\xC3', '\xA5', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\x85', '\x8E', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE285[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\x85', '\xB0', 0, '\xE2', '\x85', '\xB1', 0, '\xE2', '\x85', '\xB2', 0, '\xE2', '\x85', '\xB3', 0, '\xE2', '\x85', '\xB4', 0, '\xE2', '\x85', '\xB5', 0, '\xE2', '\x85', '\xB6', 0, '\xE2', '\x85', '\xB7', 0, '\xE2', '\x85', '\xB8', 0, '\xE2', '\x85', '\xB9', 0, '\xE2', '\x85', '\xBA', 0, '\xE2', '\x85', '\xBB', 0, '\xE2', '\x85', '\xBC', 0, '\xE2', '\x85', '\xBD', 0, '\xE2', '\x85', '\xBE', 0, '\xE2', '\x85', '\xBF', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE286[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\x86', '\x84', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE292[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\x93', '\x90', 0, '\xE2', '\x93', '\x91', 0, '\xE2', '\x93', '\x92', 0, '\xE2', '\x93', '\x93', 0, '\xE2', '\x93', '\x94', 0, '\xE2', '\x93', '\x95', 0, '\xE2', '\x93', '\x96', 0, '\xE2', '\x93', '\x97', 0, '\xE2', '\x93', '\x98', 0, '\xE2', '\x93', '\x99', 0, }; static const char s_StringToCaseInsensitiveE293[64 * 4] = { '\xE2', '\x93', '\x9A', 0, '\xE2', '\x93', '\x9B', 0, '\xE2', '\x93', '\x9C', 0, '\xE2', '\x93', '\x9D', 0, '\xE2', '\x93', '\x9E', 0, '\xE2', '\x93', '\x9F', 0, '\xE2', '\x93', '\xA0', 0, '\xE2', '\x93', '\xA1', 0, '\xE2', '\x93', '\xA2', 0, '\xE2', '\x93', '\xA3', 0, '\xE2', '\x93', '\xA4', 0, '\xE2', '\x93', '\xA5', 0, '\xE2', '\x93', '\xA6', 0, '\xE2', '\x93', '\xA7', 0, '\xE2', '\x93', '\xA8', 0, '\xE2', '\x93', '\xA9', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE2B0[64 * 4] = { '\xE2', '\xB0', '\xB0', 0, '\xE2', '\xB0', '\xB1', 0, '\xE2', '\xB0', '\xB2', 0, '\xE2', '\xB0', '\xB3', 0, '\xE2', '\xB0', '\xB4', 0, '\xE2', '\xB0', '\xB5', 0, '\xE2', '\xB0', '\xB6', 0, '\xE2', '\xB0', '\xB7', 0, '\xE2', '\xB0', '\xB8', 0, '\xE2', '\xB0', '\xB9', 0, '\xE2', '\xB0', '\xBA', 0, '\xE2', '\xB0', '\xBB', 0, '\xE2', '\xB0', '\xBC', 0, '\xE2', '\xB0', '\xBD', 0, '\xE2', '\xB0', '\xBE', 0, '\xE2', '\xB0', '\xBF', 0, '\xE2', '\xB1', '\x80', 0, '\xE2', '\xB1', '\x81', 0, '\xE2', '\xB1', '\x82', 0, '\xE2', '\xB1', '\x83', 0, '\xE2', '\xB1', '\x84', 0, '\xE2', '\xB1', '\x85', 0, '\xE2', '\xB1', '\x86', 0, '\xE2', '\xB1', '\x87', 0, '\xE2', '\xB1', '\x88', 0, '\xE2', '\xB1', '\x89', 0, '\xE2', '\xB1', '\x8A', 0, '\xE2', '\xB1', '\x8B', 0, '\xE2', '\xB1', '\x8C', 0, '\xE2', '\xB1', '\x8D', 0, '\xE2', '\xB1', '\x8E', 0, '\xE2', '\xB1', '\x8F', 0, '\xE2', '\xB1', '\x90', 0, '\xE2', '\xB1', '\x91', 0, '\xE2', '\xB1', '\x92', 0, '\xE2', '\xB1', '\x93', 0, '\xE2', '\xB1', '\x94', 0, '\xE2', '\xB1', '\x95', 0, '\xE2', '\xB1', '\x96', 0, '\xE2', '\xB1', '\x97', 0, '\xE2', '\xB1', '\x98', 0, '\xE2', '\xB1', '\x99', 0, '\xE2', '\xB1', '\x9A', 0, '\xE2', '\xB1', '\x9B', 0, '\xE2', '\xB1', '\x9C', 0, '\xE2', '\xB1', '\x9D', 0, '\xE2', '\xB1', '\x9E', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveE2B1[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xA1', 0, 0, 0, 0, 0, '\xC9', '\xAB', '\x00', 0, '\xE1', '\xB5', '\xBD', 0, '\xC9', '\xBD', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xA8', 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xAA', 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xAC', 0, 0, 0, 0, 0, '\xC9', '\x91', '\x00', 0, '\xC9', '\xB1', '\x00', 0, '\xC9', '\x90', '\x00', 0, '\xC9', '\x92', '\x00', 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xB3', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB1', '\xB6', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xC8', '\xBF', '\x00', 0, '\xC9', '\x80', '\x00', 0, }; static const char s_StringToCaseInsensitiveE2B2[64 * 4] = { '\xE2', '\xB2', '\x81', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x83', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x85', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x87', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x89', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x8B', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x8D', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x8F', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x91', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x93', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x95', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x97', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x99', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x9B', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x9D', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\x9F', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xA1', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xA3', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xA5', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xA7', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xA9', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xAB', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xAD', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xAF', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xB1', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xB3', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xB5', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xB7', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xB9', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xBB', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xBD', 0, 0, 0, 0, 0, '\xE2', '\xB2', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveE2B3[64 * 4] = { '\xE2', '\xB3', '\x81', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x83', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x85', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x87', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x89', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x8B', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x8D', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x8F', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x91', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x93', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x95', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x97', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x99', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x9B', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x9D', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\x9F', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\xA1', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\xA3', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB3', '\xAC', 0, 0, 0, 0, 0, '\xE2', '\xB3', '\xAE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xE2', '\xB3', '\xB3', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveEA99[64 * 4] = { '\xEA', '\x99', '\x81', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x83', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x85', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x87', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x89', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x8B', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x8D', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x8F', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x91', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x93', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x95', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x97', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x99', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x9B', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x9D', 0, 0, 0, 0, 0, '\xEA', '\x99', '\x9F', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xA1', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xA3', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xA5', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xA7', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xA9', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xAB', 0, 0, 0, 0, 0, '\xEA', '\x99', '\xAD', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveEA9A[64 * 4] = { '\xEA', '\x9A', '\x81', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x83', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x85', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x87', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x89', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x8B', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x8D', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x8F', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x91', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x93', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x95', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x97', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x99', 0, 0, 0, 0, 0, '\xEA', '\x9A', '\x9B', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveEA9C[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xA3', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xA5', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xA7', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xA9', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xAB', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xAD', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xAF', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xB3', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xB5', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xB7', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xB9', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xBB', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xBD', 0, 0, 0, 0, 0, '\xEA', '\x9C', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveEA9D[64 * 4] = { '\xEA', '\x9D', '\x81', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x83', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x85', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x87', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x89', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x8B', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x8D', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x8F', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x91', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x93', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x95', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x97', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x99', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x9B', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x9D', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\x9F', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xA1', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xA3', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xA5', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xA7', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xA9', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xAB', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xAD', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xAF', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xBA', 0, 0, 0, 0, 0, '\xEA', '\x9D', '\xBC', 0, 0, 0, 0, 0, '\xE1', '\xB5', '\xB9', 0, '\xEA', '\x9D', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveEA9E[64 * 4] = { '\xEA', '\x9E', '\x81', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x83', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x85', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x87', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x8C', 0, 0, 0, 0, 0, '\xC9', '\xA5', '\x00', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x91', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x93', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x97', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x99', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x9B', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x9D', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x9F', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xA1', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xA3', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xA5', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xA7', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xA9', 0, 0, 0, 0, 0, '\xC9', '\xA6', '\x00', 0, '\xC9', '\x9C', '\x00', 0, '\xC9', '\xA1', '\x00', 0, '\xC9', '\xAC', '\x00', 0, '\xC9', '\xAA', '\x00', 0, 0, 0, 0, 0, '\xCA', '\x9E', '\x00', 0, '\xCA', '\x87', '\x00', 0, '\xCA', '\x9D', '\x00', 0, '\xEA', '\xAD', '\x93', 0, '\xEA', '\x9E', '\xB5', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xB7', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xB9', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xBB', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xBD', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\xBF', 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveEA9F[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9F', '\x83', 0, 0, 0, 0, 0, '\xEA', '\x9E', '\x94', 0, '\xCA', '\x82', '\x00', 0, '\xE1', '\xB6', '\x8E', 0, '\xEA', '\x9F', '\x88', 0, 0, 0, 0, 0, '\xEA', '\x9F', '\x8A', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEA', '\x9F', '\xB6', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveEFBC[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xEF', '\xBD', '\x81', 0, '\xEF', '\xBD', '\x82', 0, '\xEF', '\xBD', '\x83', 0, '\xEF', '\xBD', '\x84', 0, '\xEF', '\xBD', '\x85', 0, '\xEF', '\xBD', '\x86', 0, '\xEF', '\xBD', '\x87', 0, '\xEF', '\xBD', '\x88', 0, '\xEF', '\xBD', '\x89', 0, '\xEF', '\xBD', '\x8A', 0, '\xEF', '\xBD', '\x8B', 0, '\xEF', '\xBD', '\x8C', 0, '\xEF', '\xBD', '\x8D', 0, '\xEF', '\xBD', '\x8E', 0, '\xEF', '\xBD', '\x8F', 0, '\xEF', '\xBD', '\x90', 0, '\xEF', '\xBD', '\x91', 0, '\xEF', '\xBD', '\x92', 0, '\xEF', '\xBD', '\x93', 0, '\xEF', '\xBD', '\x94', 0, '\xEF', '\xBD', '\x95', 0, '\xEF', '\xBD', '\x96', 0, '\xEF', '\xBD', '\x97', 0, '\xEF', '\xBD', '\x98', 0, '\xEF', '\xBD', '\x99', 0, '\xEF', '\xBD', '\x9A', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char s_StringToCaseInsensitiveF09090[64 * 4] = { '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x90', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, '\xF0', '\x90', '\x91', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveF09092[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, }; static const char s_StringToCaseInsensitiveF09093[64 * 4] = { '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, '\xF0', '\x90', '\x93', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveF090B2[64 * 4] = { '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, '\xF0', '\x90', '\xB3', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveF091A2[64 * 4] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, '\xF0', '\x91', '\xA3', 0, }; static const char s_StringToCaseInsensitiveF096B9[64 * 4] = { '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, '\xF0', '\x96', '\xB9', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char s_StringToCaseInsensitiveF09EA4[64 * 4] = { '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA4', 0, '\xF0', '\x9E', '\xA5', 0, '\xF0', '\x9E', '\xA5', 0, '\xF0', '\x9E', '\xA5', 0, '\xF0', '\x9E', '\xA5', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char *s_StringToCaseInsensitiveMap[32] = { 0, 0, s_StringToCaseInsensitiveC2, s_StringToCaseInsensitiveC3, s_StringToCaseInsensitiveC4, s_StringToCaseInsensitiveC5, s_StringToCaseInsensitiveC6, s_StringToCaseInsensitiveC7, s_StringToCaseInsensitiveC8, s_StringToCaseInsensitiveC9, 0, 0, 0, s_StringToCaseInsensitiveCD, s_StringToCaseInsensitiveCE, s_StringToCaseInsensitiveCF, s_StringToCaseInsensitiveD0, s_StringToCaseInsensitiveD1, s_StringToCaseInsensitiveD2, s_StringToCaseInsensitiveD3, s_StringToCaseInsensitiveD4, s_StringToCaseInsensitiveD5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char *s_StringToCaseInsensitiveMapE1[64] = { 0, 0, s_StringToCaseInsensitiveE182, s_StringToCaseInsensitiveE183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveE18E, s_StringToCaseInsensitiveE18F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveE1B2, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveE1B8, s_StringToCaseInsensitiveE1B9, s_StringToCaseInsensitiveE1BA, s_StringToCaseInsensitiveE1BB, s_StringToCaseInsensitiveE1BC, s_StringToCaseInsensitiveE1BD, s_StringToCaseInsensitiveE1BE, s_StringToCaseInsensitiveE1BF, }; static const char *s_StringToCaseInsensitiveMapE2[64] = { 0, 0, 0, 0, s_StringToCaseInsensitiveE284, s_StringToCaseInsensitiveE285, s_StringToCaseInsensitiveE286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveE292, s_StringToCaseInsensitiveE293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveE2B0, s_StringToCaseInsensitiveE2B1, s_StringToCaseInsensitiveE2B2, s_StringToCaseInsensitiveE2B3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char *s_StringToCaseInsensitiveMapEA[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveEA99, s_StringToCaseInsensitiveEA9A, 0, s_StringToCaseInsensitiveEA9C, s_StringToCaseInsensitiveEA9D, s_StringToCaseInsensitiveEA9E, s_StringToCaseInsensitiveEA9F, 0, 0, 0, 0, 0, 0, 0, 0, 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 char *s_StringToCaseInsensitiveMapEF[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveEFBC, 0, 0, 0, }; static const char **s_StringToCaseInsensitiveMapMap[16] = { 0, s_StringToCaseInsensitiveMapE1, s_StringToCaseInsensitiveMapE2, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveMapEA, 0, 0, 0, 0, s_StringToCaseInsensitiveMapEF, }; static const char *s_StringToCaseInsensitiveMapF090[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveF09090, 0, s_StringToCaseInsensitiveF09092, s_StringToCaseInsensitiveF09093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveF090B2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const char *s_StringToCaseInsensitiveMapF091[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveF091A2, 0, 0, 0, 0, 0, 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 char *s_StringToCaseInsensitiveMapF096[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveF096B9, 0, 0, 0, 0, 0, 0, }; static const char *s_StringToCaseInsensitiveMapF09E[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveF09EA4, 0, 0, 0, 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 char **s_StringToCaseInsensitiveMapMapF0[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveMapF090, s_StringToCaseInsensitiveMapF091, 0, 0, 0, 0, s_StringToCaseInsensitiveMapF096, 0, 0, 0, 0, 0, 0, 0, s_StringToCaseInsensitiveMapF09E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 char ***s_StringToCaseInsensitiveMapMapMap[8] = { s_StringToCaseInsensitiveMapMapF0, 0, 0, 0, 0, 0, 0, 0, }; static const char s_LowerAscii[] = { 'a', 0, 'b', 0, 'c', 0, 'd', 0, 'e', 0, 'f', 0, 'g', 0, 'h', 0, 'i', 0, 'j', 0, 'k', 0, 'l', 0, 'm', 0, 'n', 0, 'o', 0, 'p', 0, 'q', 0, 'r', 0, 's', 0, 't', 0, 'u', 0, 'v', 0, 'w', 0, 'x', 0, 'y', 0, 'z', 0, 0, 0, 0, 0 }; // *************************************************************************** const char *fetchToCaseInsensitiveAsUtf8(const char **str) { unsigned char c = *(*str); unsigned char d, e, f; if (c < 0x80) { if (c >= 'A' && c <= 'Z') { // 1-byte UTF-8 ++(*str); return &s_LowerAscii[(c - 'A') << 1]; } } else if (c < 0xC0) { // non-starting byte } else if (c < 0xE0) { // 2-byte UTF-8 if (((d = (*str)[1]) & 0xC0) == 0x80) { const char *table = s_StringToCaseInsensitiveMap[c & 0x1F]; if (table) { unsigned char idx = (d & 0x3F) << 2; if (table[idx]) { (*str) += 2; return &table[idx]; } } } } else if (c < 0xF0) { // 3-byte UTF-8 if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80) { const char **map = s_StringToCaseInsensitiveMapMap[c & 0x0F]; if (map) { const char *table = map[d & 0x3F]; if (table) { unsigned char idx = (e & 0x3F) << 2; if (table[idx]) { (*str) += 3; return &table[idx]; } } } } } else if (c < 0xF8) { // 4-byte UTF-8 if (((d = (*str)[1]) & 0xC0) == 0x80 && ((e = (*str)[2]) & 0xC0) == 0x80 && ((f = (*str)[3]) & 0xC0) == 0x80) { const char ***mapMap = s_StringToCaseInsensitiveMapMapMap[c & 0x07]; if (mapMap) { const char **map = mapMap[d & 0x3F]; if (map) { const char *table = map[e & 0x3F]; if (table) { unsigned char idx = (f & 0x3F) << 2; if (table[idx]) { (*str) += 4; return &table[idx]; } } } } } } return NULL; } // *************************************************************************** int compareCaseInsensitive(const char *a, const char *b) { // while (*a != 0 && *b != 0) for (; ;) { const char *ca = fetchToCaseInsensitiveAsUtf8(&a); const char *cb = fetchToCaseInsensitiveAsUtf8(&b); if (!ca && !cb) { // Easy case, ASCII compare or junk if (*a != *b) { if (*a > * b) return 1; else return -1; } else if (!*a) // Equal and NUL, ends both { return 0; } ++a; ++b; } else if (!cb) { // String a changed lowercase, iterate ca until NUL alongside b nlassert(*ca); do { if (*ca != *b) { if (*ca > *b) return 1; else return -1; } ++ca; ++b; } while (*ca); } else if (!ca) { // String b changed lowercase, iterate a alongside cb until NUL nlassert(*cb); do { if (*a != *cb) { if (*a > *cb) return 1; else return -1; } ++a; ++cb; } while (*cb); } else { // Both strings changed lowercase if (ca != cb) // Only check if it's a different result { do { if (*ca != *cb) { if (*ca > *cb) return 1; else return -1; } ++ca; ++cb; } while (*ca && *cb); } } } // if (*a == *b) return 0; // if (*a > *b) return 1; // return -1; } // *************************************************************************** int compareCaseInsensitive(const char *a, size_t lenA, const char *b, size_t lenB) { const char *ma = a + lenA; const char *mb = b + lenB; for (; ;) { if (a >= ma) { if (b >= mb) { return 0; // Both strings ended } else { return 1; // A is longer } } if (b >= mb) { return -1; // B is longer } const char *ca = fetchToCaseInsensitiveAsUtf8(&a); const char *cb = fetchToCaseInsensitiveAsUtf8(&b); if (!ca && !cb) { // Easy case, ASCII compare or junk if (*a != *b) { if (*a > * b) return 1; else return -1; } /* else if (!*a) // Equal and NUL, ends both { return 0; } */ ++a; ++b; } else if (!cb) { // String a changed lowercase, iterate ca until NUL alongside b nlassert(*ca); do { if (*ca != *b) { if (*ca > *b) return 1; else return -1; } ++ca; ++b; } while (*ca); } else if (!ca) { // String b changed lowercase, iterate a alongside cb until NUL nlassert(*cb); do { if (*a != *cb) { if (*a > *cb) return 1; else return -1; } ++a; ++cb; } while (*cb); } else { // Both strings changed lowercase if (ca != cb) // Only check if it's a different result { do { if (*ca != *cb) { if (*ca > *cb) return 1; else return -1; } ++ca; ++cb; } while (*ca && *cb); } } } } // *************************************************************************** } // NLMISC