1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

utf8 functions (to_lower etc)

This commit is contained in:
penguindark 2019-11-29 14:25:25 +01:00 committed by Alexander Medvednikov
parent 431568faad
commit 82d4a731f3
2 changed files with 862 additions and 0 deletions

855
vlib/builtin/utf8_util.v Normal file
View File

@ -0,0 +1,855 @@
/**********************************************************************
*
* utf-8 util
*
* This file contains utilities for utf8 strings
*
**********************************************************************/
module builtin
//
// utf8_to_upper
// Parameters:
//
// Output:
// string
//
// Convert a utf8 string to uppercase
//
pub fn (s string) utf8_to_upper() string {
return s.utf8_up_low(true)
}
//
// utf8_to_lower
// Parameters:
//
// Output:
// string
//
// Convert a utf8 string to lowercase
//
pub fn (s string) utf8_to_lower() string {
return s.utf8_up_low(false)
}
// Private function, calculate the lenght in bytes of a utf8 rune
fn utf8util_char_len(b byte) int {
return (( 0xe5000000 >> (( b >> 3 ) & 0x1e )) & 3 ) + 1
}
// Private function, make the dir jobs
fn (s string) utf8_up_low(uppper_flag bool) string {
mut _index := 0
mut old_index := 0
mut str_res := malloc(s.len + 1)
mut offset:=1 // default to upper
mut test_result:=1 // default to upper
if uppper_flag == false {
offset=-1
test_result=0
}
//C.printf("offset: %d tr: %d\n",offset,test_result)
for {
ch_len := utf8util_char_len(s.str[_index])
if ch_len == 1 {
if uppper_flag==true {
str_res[_index] = C.toupper(s.str[_index])
}else{
str_res[_index] = C.tolower(s.str[_index])
}
}
else if ch_len > 1 && ch_len < 5{
mut lword := int(0)
for i:=0; i < ch_len ; i++ {
lword = (lword << 8 ) | int( s.str[_index + i] )
}
//C.printf(" #%d (%x) ", _index, lword)
mut res := int(0)
// 2 byte utf-8
// byte format: 110xxxxx 10xxxxxx
//
if ch_len==2 {
res = (lword & 0x1f00) >> 2 | (lword & 0x3f)
}
// 3 byte utf-8
// byte format: 1110xxxx 10xxxxxx 10xxxxxx
//
else if ch_len==3 {
res = ( lword & 0x0f00 ) >> 4 | ( lword & 0x3f00 ) >> 2 | ( lword & 0x3f )
}
// 4 byte utf-8
// byte format: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
//
else if ch_len==4 {
res = (( lword & 0x07000000 ) >> 6) | (( lword & 0x003f0000 ) >> 4) |
(( lword & 0x00003F00 ) >> 2 ) | ( lword & 0x0000003f )
}
//C.printf("code %d %x",ch_len,res)
ch_index := find_char(u16(res))
//C.printf(" utf8 index: %d",ch_index)
// char not in table no need of conversion
//****************************************************************
//BUG: need round brackets for & condition, otherwise priority ignored!!!
//****************************************************************
if ch_index==0 || ( ch_index & 1 )== test_result {
for i in 0..ch_len {
str_res[_index + i] = s.str[_index + i]
}
}else{
tab_char := u16(unicode_con_table[ch_index+offset])
//C.printf("Old char: %04x, New char: %04x, index: %d, offset: %d\n",unicode_con_table[ch_index],tab_char,ch_index,offset)
if ch_len == 2 {
ch0:=( (tab_char >> 6) & 0x1f ) | 0xc0 /*110x xxxx*/
ch1:=( (tab_char >> 0) & 0x3f ) | 0x80 /*10xx xxxx*/
//C.printf("[%02x%02x]",ch0,ch1)
str_res[ _index + 0 ] = ch0
str_res[ _index + 1 ] = ch1
//****************************************************************
// BUG: doesn't compile, workaround use shitf to right of 0 bit
//****************************************************************
//str_res[_index + 1 ] = byte( tab_char & 0xbf ) /*1011 1111*/
}
else if ch_len == 3 {
ch0:=( (tab_char >> 12) & 0x0f ) | 0xe0 /*1110 xxxx*/
ch1:=( (tab_char >> 6) & 0x3f ) | 0x80 /*10xx xxxx*/
ch2:=( (tab_char >> 0) & 0x3f ) | 0x80 /*10xx xxxx*/
str_res[_index + 0 ] = ch0
str_res[_index + 1 ] = ch1
str_res[_index + 2 ] = ch2
}
// TODO: write if needed
else if ch_len == 4 {
// place holder!!
for i in 0..ch_len {
str_res[_index + i] = s.str[_index + i]
}
}
}
}
// other cases just copy the string
else{
for i in 0..ch_len {
str_res[_index + i] = s.str[_index + i]
}
}
old_index = _index
_index += ch_len
my_substr:=s.substr(old_index,_index)
//println("#: $ch_len ==> $my_substr")
uct := unicode_con_table[0]
if _index >= s.len {
break
}
}
return tos(str_res, s.len)
}
fn find_char( inCode u16 ) int {
for c,x in unicode_con_table {
if x==inCode {
return int(c)
}
}
return int(0)
}
/*****************************************************************************
*
* universal character set 2 level 1 (UCS-2 level-1) between uppercase and lowercase
* [Lowercase code point, Uppercase code point, Lowercase character description, Uppercase character description]
*
* source: https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/nls/rbagslowtoupmaptable.htm?view=embed
* term of use: https://www.ibm.com/legal?lnk=flg-tous-usen
* license: not stated, general fair use license applied
*
*****************************************************************************/
const(
unicode_con_table = [
u16(0x0061), 0x0041, // LATIN SMALL LETTER A LATIN CAPITAL LETTER A,
0x0062, 0x0042, // LATIN SMALL LETTER B LATIN CAPITAL LETTER B
0x0063, 0x0043, // LATIN SMALL LETTER C LATIN CAPITAL LETTER C
0x0064, 0x0044, // LATIN SMALL LETTER D LATIN CAPITAL LETTER D
0x0065, 0x0045, // LATIN SMALL LETTER E LATIN CAPITAL LETTER E
0x0066, 0x0046, // LATIN SMALL LETTER F LATIN CAPITAL LETTER F
0x0067, 0x0047, // LATIN SMALL LETTER G LATIN CAPITAL LETTER G
0x0068, 0x0048, // LATIN SMALL LETTER H LATIN CAPITAL LETTER H
0x0069, 0x0049, // LATIN SMALL LETTER I LATIN CAPITAL LETTER I
0x006A, 0x004A, // LATIN SMALL LETTER J LATIN CAPITAL LETTER J
0x006B, 0x004B, // LATIN SMALL LETTER K LATIN CAPITAL LETTER K
0x006C, 0x004C, // LATIN SMALL LETTER L LATIN CAPITAL LETTER L
0x006D, 0x004D, // LATIN SMALL LETTER M LATIN CAPITAL LETTER M
0x006E, 0x004E, // LATIN SMALL LETTER N LATIN CAPITAL LETTER N
0x006F, 0x004F, // LATIN SMALL LETTER O LATIN CAPITAL LETTER O
0x0070, 0x0050, // LATIN SMALL LETTER P LATIN CAPITAL LETTER P
0x0071, 0x0051, // LATIN SMALL LETTER Q LATIN CAPITAL LETTER Q
0x0072, 0x0052, // LATIN SMALL LETTER R LATIN CAPITAL LETTER R
0x0073, 0x0053, // LATIN SMALL LETTER S LATIN CAPITAL LETTER S
0x0074, 0x0054, // LATIN SMALL LETTER T LATIN CAPITAL LETTER T
0x0075, 0x0055, // LATIN SMALL LETTER U LATIN CAPITAL LETTER U
0x0076, 0x0056, // LATIN SMALL LETTER V LATIN CAPITAL LETTER V
0x0077, 0x0057, // LATIN SMALL LETTER W LATIN CAPITAL LETTER W
0x0078, 0x0058, // LATIN SMALL LETTER X LATIN CAPITAL LETTER X
0x0079, 0x0059, // LATIN SMALL LETTER Y LATIN CAPITAL LETTER Y
0x007A, 0x005A, // LATIN SMALL LETTER Z LATIN CAPITAL LETTER Z
0x00E0, 0x00C0, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A GRAVE
0x00E1, 0x00C1, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A ACUTE
0x00E2, 0x00C2, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A CIRCUMFLEX
0x00E3, 0x00C3, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A TILDE
0x00E4, 0x00C4, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A DIAERESIS
0x00E5, 0x00C5, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A RING
0x00E6, 0x00C6, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER A E
0x00E7, 0x00C7, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER C CEDILLA
0x00E8, 0x00C8, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER E GRAVE
0x00E9, 0x00C9, // LATIN SMALL LETTER A GRAVE LATIN CAPITAL LETTER E ACUTE
0x00EA, 0x00CA, // LATIN SMALL LETTER E CIRCUMFLEX LATIN CAPITAL LETTER E CIRCUMFLEX
0x00EB, 0x00CB, // LATIN SMALL LETTER E DIAERESIS LATIN CAPITAL LETTER E DIAERESIS
0x00EC, 0x00CC, // LATIN SMALL LETTER I GRAVE LATIN CAPITAL LETTER I GRAVE
0x00ED, 0x00CD, // LATIN SMALL LETTER I ACUTE LATIN CAPITAL LETTER I ACUTE
0x00EE, 0x00CE, // LATIN SMALL LETTER I CIRCUMFLEX LATIN CAPITAL LETTER I CIRCUMFLEX
0x00EF, 0x00CF, // LATIN SMALL LETTER I DIAERESIS LATIN CAPITAL LETTER I DIAERESIS
0x00F0, 0x00D0, // LATIN SMALL LETTER ETH LATIN CAPITAL LETTER ETH
0x00F1, 0x00D1, // LATIN SMALL LETTER N TILDE LATIN CAPITAL LETTER N TILDE
0x00F2, 0x00D2, // LATIN SMALL LETTER O GRAVE LATIN CAPITAL LETTER O GRAVE
0x00F3, 0x00D3, // LATIN SMALL LETTER O ACUTE LATIN CAPITAL LETTER O ACUTE
0x00F4, 0x00D4, // LATIN SMALL LETTER O CIRCUMFLEX LATIN CAPITAL LETTER O CIRCUMFLEX
0x00F5, 0x00D5, // LATIN SMALL LETTER O TILDE LATIN CAPITAL LETTER O TILDE
0x00F6, 0x00D6, // LATIN SMALL LETTER O DIAERESIS LATIN CAPITAL LETTER O DIAERESIS
0x00F8, 0x00D8, // LATIN SMALL LETTER O SLASH LATIN CAPITAL LETTER O SLASH
0x00F9, 0x00D9, // LATIN SMALL LETTER U GRAVE LATIN CAPITAL LETTER U GRAVE
0x00FA, 0x00DA, // LATIN SMALL LETTER U ACUTE LATIN CAPITAL LETTER U ACUTE
0x00FB, 0x00DB, // LATIN SMALL LETTER U CIRCUMFLEX LATIN CAPITAL LETTER U CIRCUMFLEX
0x00FC, 0x00DC, // LATIN SMALL LETTER U DIAERESIS LATIN CAPITAL LETTER U DIAERESIS
0x00FD, 0x00DD, // LATIN SMALL LETTER Y ACUTE LATIN CAPITAL LETTER Y ACUTE
0x00FE, 0x00DE, // LATIN SMALL LETTER THORN LATIN CAPITAL LETTER THORN
0x00FF, 0x0178, // LATIN SMALL LETTER Y DIAERESIS LATIN CAPITAL LETTER Y WITH DIAERESIS
0x0101, 0x0100, // LATIN SMALL LETTER A WITH MACRON LATIN CAPITAL LETTER A WITH MACRON
0x0103, 0x0102, // LATIN SMALL LETTER A WITH BREVE LATIN CAPITAL LETTER A WITH BREVE
0x0105, 0x0104, // LATIN SMALL LETTER A WITH OGONEK LATIN CAPITAL LETTER A WITH OGONEK
0x0107, 0x0106, // LATIN SMALL LETTER C WITH ACUTE LATIN CAPITAL LETTER C WITH ACUTE
0x0109, 0x0108, // LATIN SMALL LETTER C WITH CIRCUMFLEX LATIN CAPITAL LETTER C WITH CIRCUMFLEX
0x010B, 0x010A, // LATIN SMALL LETTER C WITH DOT ABOVE LATIN CAPITAL LETTER C WITH DOT ABOVE
0x010D, 0x010C, // LATIN SMALL LETTER C WITH CARON LATIN CAPITAL LETTER C WITH CARON
0x010F, 0x010E, // LATIN SMALL LETTER D WITH CARON LATIN CAPITAL LETTER D WITH CARON
0x0111, 0x0110, // LATIN SMALL LETTER D WITH STROKE LATIN CAPITAL LETTER D WITH STROKE
0x0113, 0x0112, // LATIN SMALL LETTER E WITH MACRON LATIN CAPITAL LETTER E WITH MACRON
0x0115, 0x0114, // LATIN SMALL LETTER E WITH BREVE LATIN CAPITAL LETTER E WITH BREVE
0x0117, 0x0116, // LATIN SMALL LETTER E WITH DOT ABOVE LATIN CAPITAL LETTER E WITH DOT ABOVE
0x0119, 0x0118, // LATIN SMALL LETTER E WITH OGONEK LATIN CAPITAL LETTER E WITH OGONEK
0x011B, 0x011A, // LATIN SMALL LETTER E WITH CARON LATIN CAPITAL LETTER E WITH CARON
0x011D, 0x011C, // LATIN SMALL LETTER G WITH CIRCUMFLEX LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0x011F, 0x011E, // LATIN SMALL LETTER G WITH BREVE LATIN CAPITAL LETTER G WITH BREVE
0x0121, 0x0120, // LATIN SMALL LETTER G WITH DOT ABOVE LATIN CAPITAL LETTER G WITH DOT ABOVE
0x0123, 0x0122, // LATIN SMALL LETTER G WITH CEDILLA LATIN CAPITAL LETTER G WITH CEDILLA
0x0125, 0x0124, // LATIN SMALL LETTER H WITH CIRCUMFLEX LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0x0127, 0x0126, // LATIN SMALL LETTER H WITH STROKE LATIN CAPITAL LETTER H WITH STROKE
0x0129, 0x0128, // LATIN SMALL LETTER I WITH TILDE LATIN CAPITAL LETTER I WITH TILDE
0x012B, 0x012A, // LATIN SMALL LETTER I WITH MACRON LATIN CAPITAL LETTER I WITH MACRON
0x012D, 0x012C, // LATIN SMALL LETTER I WITH BREVE LATIN CAPITAL LETTER I WITH BREVE
0x012F, 0x012E, // LATIN SMALL LETTER I WITH OGONEK LATIN CAPITAL LETTER I WITH OGONEK
0x0131, 0x0049, // LATIN SMALL LETTER DOTLESS I LATIN CAPITAL LETTER I
0x0133, 0x0132, // LATIN SMALL LIGATURE IJ LATIN CAPITAL LIGATURE IJ
0x0135, 0x0134, // LATIN SMALL LETTER J WITH CIRCUMFLEX LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0x0137, 0x0136, // LATIN SMALL LETTER K WITH CEDILLA LATIN CAPITAL LETTER K WITH CEDILLA
0x013A, 0x0139, // LATIN SMALL LETTER L WITH ACUTE LATIN CAPITAL LETTER L WITH ACUTE
0x013C, 0x013B, // LATIN SMALL LETTER L WITH CEDILLA LATIN CAPITAL LETTER L WITH CEDILLA
0x013E, 0x013D, // LATIN SMALL LETTER L WITH CARON LATIN CAPITAL LETTER L WITH CARON
0x0140, 0x013F, // LATIN SMALL LETTER L WITH MIDDLE DOT LATIN CAPITAL LETTER L WITH MIDDLE DOT
0x0142, 0x0141, // LATIN SMALL LETTER L WITH STROKE LATIN CAPITAL LETTER L WITH STROKE
0x0144, 0x0143, // LATIN SMALL LETTER N WITH ACUTE LATIN CAPITAL LETTER N WITH ACUTE
0x0146, 0x0145, // LATIN SMALL LETTER N WITH CEDILLA LATIN CAPITAL LETTER N WITH CEDILLA
0x0148, 0x0147, // LATIN SMALL LETTER N WITH CARON LATIN CAPITAL LETTER N WITH CARON
0x014B, 0x014A, // LATIN SMALL LETTER ENG (SAMI) LATIN CAPITAL LETTER ENG (SAMI)
0x014D, 0x014C, // LATIN SMALL LETTER O WITH MACRON LATIN CAPITAL LETTER O WITH MACRON
0x014F, 0x014E, // LATIN SMALL LETTER O WITH BREVE LATIN CAPITAL LETTER O WITH BREVE
0x0151, 0x0150, // LATIN SMALL LETTER O WITH DOUBLE ACUTE LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0x0153, 0x0152, // LATIN SMALL LIGATURE OE LATIN CAPITAL LIGATURE OE
0x0155, 0x0154, // LATIN SMALL LETTER R WITH ACUTE LATIN CAPITAL LETTER R WITH ACUTE
0x0157, 0x0156, // LATIN SMALL LETTER R WITH CEDILLA LATIN CAPITAL LETTER R WITH CEDILLA
0x0159, 0x0158, // LATIN SMALL LETTER R WITH CARON LATIN CAPITAL LETTER R WITH CARON
0x015B, 0x015A, // LATIN SMALL LETTER S WITH ACUTE LATIN CAPITAL LETTER S WITH ACUTE
0x015D, 0x015C, // LATIN SMALL LETTER S WITH CIRCUMFLEX LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0x015F, 0x015E, // LATIN SMALL LETTER S WITH CEDILLA LATIN CAPITAL LETTER S WITH CEDILLA
0x0161, 0x0160, // LATIN SMALL LETTER S WITH CARON LATIN CAPITAL LETTER S WITH CARON
0x0163, 0x0162, // LATIN SMALL LETTER T WITH CEDILLA LATIN CAPITAL LETTER T WITH CEDILLA
0x0165, 0x0164, // LATIN SMALL LETTER T WITH CARON LATIN CAPITAL LETTER T WITH CARON
0x0167, 0x0166, // LATIN SMALL LETTER T WITH STROKE LATIN CAPITAL LETTER T WITH STROKE
0x0169, 0x0168, // LATIN SMALL LETTER U WITH TILDE LATIN CAPITAL LETTER U WITH TILDE
0x016B, 0x016A, // LATIN SMALL LETTER U WITH MACRON LATIN CAPITAL LETTER U WITH MACRON
0x016D, 0x016C, // LATIN SMALL LETTER U WITH BREVE LATIN CAPITAL LETTER U WITH BREVE
0x016F, 0x016E, // LATIN SMALL LETTER U WITH RING ABOVE LATIN CAPITAL LETTER U WITH RING ABOVE
0x0171, 0x0170, // LATIN SMALL LETTER U WITH DOUBLE ACUTE LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0x0173, 0x0172, // LATIN SMALL LETTER U WITH OGONEK LATIN CAPITAL LETTER U WITH OGONEK
0x0175, 0x0174, // LATIN SMALL LETTER W WITH CIRCUMFLEX LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0x0177, 0x0176, // LATIN SMALL LETTER Y WITH CIRCUMFLEX LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0x017A, 0x0179, // LATIN SMALL LETTER Z WITH ACUTE LATIN CAPITAL LETTER Z WITH ACUTE
0x017C, 0x017B, // LATIN SMALL LETTER Z WITH DOT ABOVE LATIN CAPITAL LETTER Z WITH DOT ABOVE
0x017E, 0x017D, // LATIN SMALL LETTER Z WITH CARON LATIN CAPITAL LETTER Z WITH CARON
0x0183, 0x0182, // LATIN SMALL LETTER B WITH TOPBAR LATIN CAPITAL LETTER B WITH TOPBAR
0x0185, 0x0184, // LATIN SMALL LETTER TONE SIX LATIN CAPITAL LETTER TONE SIX
0x0188, 0x0187, // LATIN SMALL LETTER C WITH HOOK LATIN CAPITAL LETTER C WITH HOOK
0x018C, 0x018B, // LATIN SMALL LETTER D WITH TOPBAR LATIN CAPITAL LETTER D WITH TOPBAR
0x0192, 0x0191, // LATIN SMALL LETTER F WITH HOOK LATIN CAPITAL LETTER F WITH HOOK
0x0199, 0x0198, // LATIN SMALL LETTER K WITH HOOK LATIN CAPITAL LETTER K WITH HOOK
0x01A1, 0x01A0, // LATIN SMALL LETTER O WITH HORN LATIN CAPITAL LETTER O WITH HORN
0x01A3, 0x01A2, // LATIN SMALL LETTER OI LATIN CAPITAL LETTER OI
0x01A5, 0x01A4, // LATIN SMALL LETTER P WITH HOOK LATIN CAPITAL LETTER P WITH HOOK
0x01A8, 0x01A7, // LATIN SMALL LETTER TONE TWO LATIN CAPITAL LETTER TONE TWO
0x01AD, 0x01AC, // LATIN SMALL LETTER T WITH HOOK LATIN CAPITAL LETTER T WITH HOOK
0x01B0, 0x01AF, // LATIN SMALL LETTER U WITH HORN LATIN CAPITAL LETTER U WITH HORN
0x01B4, 0x01B3, // LATIN SMALL LETTER Y WITH HOOK LATIN CAPITAL LETTER Y WITH HOOK
0x01B6, 0x01B5, // LATIN SMALL LETTER Z WITH STROKE LATIN CAPITAL LETTER Z WITH STROKE
0x01B9, 0x01B8, // LATIN SMALL LETTER EZH REVERSED LATIN CAPITAL LETTER EZH REVERSED
0x01BD, 0x01BC, // LATIN SMALL LETTER TONE FIVE LATIN CAPITAL LETTER TONE FIVE
0x01C6, 0x01C4, // LATIN SMALL LETTER DZ WITH CARON LATIN CAPITAL LETTER DZ WITH CARON
0x01C9, 0x01C7, // LATIN SMALL LETTER LJ LATIN CAPITAL LETTER LJ
0x01CC, 0x01CA, // LATIN SMALL LETTER NJ LATIN CAPITAL LETTER NJ
0x01CE, 0x01CD, // LATIN SMALL LETTER A WITH CARON LATIN CAPITAL LETTER A WITH CARON
0x01D0, 0x01CF, // LATIN SMALL LETTER I WITH CARON LATIN CAPITAL LETTER I WITH CARON
0x01D2, 0x01D1, // LATIN SMALL LETTER O WITH CARON LATIN CAPITAL LETTER O WITH CARON
0x01D4, 0x01D3, // LATIN SMALL LETTER U WITH CARON LATIN CAPITAL LETTER U WITH CARON
0x01D6, 0x01D5, // LATIN SMALL LETTER U WITH DIAERESIS AND MACRON LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
0x01D8, 0x01D7, // LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
0x01DA, 0x01D9, // LATIN SMALL LETTER U WITH DIAERESIS AND CARON LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
0x01DC, 0x01DB, // LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
0x01DF, 0x01DE, // LATIN SMALL LETTER A WITH DIAERESIS AND MACRON LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
0x01E1, 0x01E0, // LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
0x01E3, 0x01E2, // LATIN SMALL LIGATURE AE WITH MACRON LATIN CAPITAL LIGATURE AE MTH MACRON
0x01E5, 0x01E4, // LATIN SMALL LETTER G WITH STROKE LATIN CAPITAL LETTER G WITH STROKE
0x01E7, 0x01E6, // LATIN SMALL LETTER G WITH CARON LATIN CAPITAL LETTER G WITH CARON
0x01E9, 0x01E8, // LATIN SMALL LETTER K WITH CARON LATIN CAPITAL LETTER K WITH CARON
0x01EB, 0x01EA, // LATIN SMALL LETTER O WITH OGONEK LATIN CAPITAL LETTER O WITH OGONEK
0x01ED, 0x01EC, // LATIN SMALL LETTER O WITH OGONEK AND MACRON LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
0x01EF, 0x01EE, // LATIN SMALL LETTER EZH WITH CARON LATIN CAPITAL LETTER EZH WITH CARON
0x01F3, 0x01F1, // LATIN SMALL LETTER DZ LATIN CAPITAL LETTER DZ
0x01F5, 0x01F4, // LATIN SMALL LETTER G WITH ACUTE LATIN CAPITAL LETTER G WITH ACUTE
0x01FB, 0x01FA, // LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
0x01FD, 0x01FC, // LATIN SMALL LIGATURE AE WITH ACUTE LATIN CAPITAL LIGATURE AE WITH ACUTE
0x01FF, 0x01FE, // LATIN SMALL LETTER O WITH STROKE AND ACUTE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
0x0201, 0x0200, // LATIN SMALL LETTER A WITH DOUBLE GRAVE LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
0x0203, 0x0202, // LATIN SMALL LETTER A WITH INVERTED BREVE LATIN CAPITAL LETTER A WITH INVERTED BREVE
0x0205, 0x0204, // LATIN SMALL LETTER E WITH DOUBLE GRAVE LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
0x0207, 0x0206, // LATIN SMALL LETTER E WITH INVERTED BREVE LATIN CAPITAL LETTER E WITH INVERTED BREVE
0x0209, 0x0208, // LATIN SMALL LETTER I WITH DOUBLE GRAVE LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
0x020B, 0x020A, // LATIN SMALL LETTER I WITH INVERTED BREVE LATIN CAPITAL LETTER I WITH INVERTED BREVE
0x020D, 0x020C, // LATIN SMALL LETTER O WITH DOUBLE GRAVE LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
0x020F, 0x020E, // LATIN SMALL LETTER O WITH INVERTED BREVE LATIN CAPITAL LETTER O WITH INVERTED BREVE
0x0211, 0x0210, // LATIN SMALL LETTER R WITH DOUBLE GRAVE LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
0x0213, 0x0212, // LATIN SMALL LETTER R WITH INVERTED BREVE LATIN CAPITAL LETTER R WITH INVERTED BREVE
0x0215, 0x0214, // LATIN SMALL LETTER U WITH DOUBLE GRAVE LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
0x0217, 0x0216, // LATIN SMALL LETTER U WITH INVERTED BREVE LATIN CAPITAL LETTER U WITH INVERTED BREVE
0x0253, 0x0181, // LATIN SMALL LETTER B WITH HOOK LATIN CAPITAL LETTER B WITH HOOK
0x0254, 0x0186, // LATIN SMALL LETTER OPEN O LATIN CAPITAL LETTER OPEN O
0x0257, 0x018A, // LATIN SMALL LETTER D WITH HOOK LATIN CAPITAL LETTER D WITH HOOK
0x0258, 0x018E, // LATIN SMALL LETTER REVERSED E LATIN CAPITAL LETTER REVERSED E
0x0259, 0x018F, // LATIN SMALL LETTER SCHWA LATIN CAPITAL LETTER SCHWA
0x025B, 0x0190, // LATIN SMALL LETTER OPEN E LATIN CAPITAL LETTER OPEN E
0x0260, 0x0193, // LATIN SMALL LETTER G WITH HOOK LATIN CAPITAL LETTER G WITH HOOK
0x0263, 0x0194, // LATIN SMALL LETTER GAMMA LATIN CAPITAL LETTER GAMMA
0x0268, 0x0197, // LATIN SMALL LETTER I WITH STROKE LATIN CAPITAL LETTER I WITH STROKE
0x0269, 0x0196, // LATIN SMALL LETTER IOTA LATIN CAPITAL LETTER IOTA
0x026F, 0x019C, // LATIN SMALL LETTER TURNED M LATIN CAPITAL LETTER TURNED M
0x0272, 0x019D, // LATIN SMALL LETTER N WITH LEFT HOOK LATIN CAPITAL LETTER N WITH LEFT HOOK
0x0275, 0x019F, // LATIN SMALL LETTER BARRED O LATIN CAPITAL LETTER O WITH MIDDLE TILDE
0x0283, 0x01A9, // LATIN SMALL LETTER ESH LATIN CAPITAL LETTER ESH
0x0288, 0x01AE, // LATIN SMALL LETTER T WITH RETROFLEX HOOK LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
0x028A, 0x01B1, // LATIN SMALL LETTER UPSILON LATIN CAPITAL LETTER UPSILON
0x028B, 0x01B2, // LATIN SMALL LETTER V WITH HOOK LATIN CAPITAL LETTER V WITH HOOK
0x0292, 0x01B7, // LATIN SMALL LETTER EZH LATIN CAPITAL LETTER EZH
0x03AC, 0x0386, // GREEK SMALL LETTER ALPHA WITH TONOS GREEK CAPITAL LETTER ALPHA WITH TONOS
0x03AD, 0x0388, // GREEK SMALL LETTER EPSILON WITH TONOS GREEK CAPITAL LETTER EPSILON WITH TONOS
0x03AE, 0x0389, // GREEK SMALL LETTER ETA WITH TONOS GREEK CAPITAL LETTER ETA WITH TONOS
0x03AF, 0x038A, // GREEK SMALL LETTER IOTA WITH TONOS GREEK CAPITAL LETTER IOTA WITH TONOS
0x03B1, 0x0391, // GREEK SMALL LETTER ALPHA GREEK CAPITAL LETTER ALPHA
0x03B2, 0x0392, // GREEK SMALL LETTER BETA GREEK CAPITAL LETTER BETA
0x03B3, 0x0393, // GREEK SMALL LETTER GAMMA GREEK CAPITAL LETTER GAMMA
0x03B4, 0x0394, // GREEK SMALL LETTER DELTA GREEK CAPITAL LETTER DELTA
0x03B5, 0x0395, // GREEK SMALL LETTER EPSILON GREEK CAPITAL LETTER EPSILON
0x03B6, 0x0396, // GREEK SMALL LETTER ZETA GREEK CAPITAL LETTER ZETA
0x03B7, 0x0397, // GREEK SMALL LETTER ETA GREEK CAPITAL LETTER ETA
0x03B8, 0x0398, // GREEK SMALL LETTER THETA GREEK CAPITAL LETTER THETA
0x03B9, 0x0399, // GREEK SMALL LETTER IOTA GREEK CAPITAL LETTER IOTA
0x03BA, 0x039A, // GREEK SMALL LETTER KAPPA GREEK CAPITAL LETTER KAPPA
0x03BB, 0x039B, // GREEK SMALL LETTER LAMDA GREEK CAPITAL LETTER LAMDA
0x03BC, 0x039C, // GREEK SMALL LETTER MU GREEK CAPITAL LETTER MU
0x03BD, 0x039D, // GREEK SMALL LETTER NU GREEK CAPITAL LETTER NU
0x03BE, 0x039E, // GREEK SMALL LETTER XI GREEK CAPITAL LETTER XI
0x03BF, 0x039F, // GREEK SMALL LETTER OMICRON GREEK CAPITAL LETTER OMICRON
0x03C0, 0x03A0, // GREEK SMALL LETTER PI GREEK CAPITAL LETTER PI
0x03C1, 0x03A1, // GREEK SMALL LETTER RHO GREEK CAPITAL LETTER RHO
0x03C3, 0x03A3, // GREEK SMALL LETTER SIGMA GREEK CAPITAL LETTER SIGMA
0x03C4, 0x03A4, // GREEK SMALL LETTER TAU GREEK CAPITAL LETTER TAU
0x03C5, 0x03A5, // GREEK SMALL LETTER UPSILON GREEK CAPITAL LETTER UPSILON
0x03C6, 0x03A6, // GREEK SMALL LETTER PHI GREEK CAPITAL LETTER PHI
0x03C7, 0x03A7, // GREEK SMALL LETTER CHI GREEK CAPITAL LETTER CHI
0x03C8, 0x03A8, // GREEK SMALL LETTER PSI GREEK CAPITAL LETTER PSI
0x03C9, 0x03A9, // GREEK SMALL LETTER OMEGA GREEK CAPITAL LETTER OMEGA
0x03CA, 0x03AA, // GREEK SMALL LETTER IOTA WITH DIALYTIKA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
0x03CB, 0x03AB, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
0x03CC, 0x038C, // GREEK SMALL LETTER OMICRON WITH TONOS GREEK CAPITAL LETTER OMICRON WITH TONOS
0x03CD, 0x038E, // GREEK SMALL LETTER UPSILON WITH TONOS GREEK CAPITAL LETTER UPSILON WITH TONOS
0x03CE, 0x038F, // GREEK SMALL LETTER OMEGA WITH TONOS GREEK CAPITAL LETTER OMEGA WITH TONOS
0x03E3, 0x03E2, // COPTIC SMALL LETTER SHEI COPTIC CAPITAL LETTER SHEI
0x03E5, 0x03E4, // COPTIC SMALL LETTER FEI COPTIC CAPITAL LETTER FEI
0x03E7, 0x03E6, // COPTIC SMALL LETTER KHEI COPTIC CAPITAL LETTER KHEI
0x03E9, 0x03E8, // COPTIC SMALL LETTER HORI COPTIC CAPITAL LETTER HORI
0x03EB, 0x03EA, // COPTIC SMALL LETTER GANGIA COPTIC CAPITAL LETTER GANGIA
0x03ED, 0x03EC, // COPTIC SMALL LETTER SHIMA COPTIC CAPITAL LETTER SHIMA
0x03EF, 0x03EE, // COPTIC SMALL LETTER DEI COPTIC CAPITAL LETTER DEI
0x0430, 0x0410, // CYRILLIC SMALL LETTER A CYRILLIC CAPITAL LETTER A
0x0431, 0x0411, // CYRILLIC SMALL LETTER BE CYRILLIC CAPITAL LETTER BE
0x0432, 0x0412, // CYRILLIC SMALL LETTER VE CYRILLIC CAPITAL LETTER VE
0x0433, 0x0413, // CYRILLIC SMALL LETTER GHE CYRILLIC CAPITAL LETTER GHE
0x0434, 0x0414, // CYRILLIC SMALL LETTER DE CYRILLIC CAPITAL LETTER DE
0x0435, 0x0415, // CYRILLIC SMALL LETTER IE CYRILLIC CAPITAL LETTER IE
0x0436, 0x0416, // CYRILLIC SMALL LETTER ZHE CYRILLIC CAPITAL LETTER ZHE
0x0437, 0x0417, // CYRILLIC SMALL LETTER ZE CYRILLIC CAPITAL LETTER ZE
0x0438, 0x0418, // CYRILLIC SMALL LETTER I CYRILLIC CAPITAL LETTER I
0x0439, 0x0419, // CYRILLIC SMALL LETTER SHORT I CYRILLIC CAPITAL LETTER SHORT I
0x043A, 0x041A, // CYRILLIC SMALL LETTER KA CYRILLIC CAPITAL LETTER KA
0x043B, 0x041B, // CYRILLIC SMALL LETTER EL CYRILLIC CAPITAL LETTER EL
0x043C, 0x041C, // CYRILLIC SMALL LETTER EM CYRILLIC CAPITAL LETTER EM
0x043D, 0x041D, // CYRILLIC SMALL LETTER EN CYRILLIC CAPITAL LETTER EN
0x043E, 0x041E, // CYRILLIC SMALL LETTER O CYRILLIC CAPITAL LETTER O
0x043F, 0x041F, // CYRILLIC SMALL LETTER PE CYRILLIC CAPITAL LETTER PE
0x0440, 0x0420, // CYRILLIC SMALL LETTER ER CYRILLIC CAPITAL LETTER ER
0x0441, 0x0421, // CYRILLIC SMALL LETTER ES CYRILLIC CAPITAL LETTER ES
0x0442, 0x0422, // CYRILLIC SMALL LETTER TE CYRILLIC CAPITAL LETTER TE
0x0443, 0x0423, // CYRILLIC SMALL LETTER U CYRILLIC CAPITAL LETTER U
0x0444, 0x0424, // CYRILLIC SMALL LETTER EF CYRILLIC CAPITAL LETTER EF
0x0445, 0x0425, // CYRILLIC SMALL LETTER HA CYRILLIC CAPITAL LETTER HA
0x0446, 0x0426, // CYRILLIC SMALL LETTER TSE CYRILLIC CAPITAL LETTER TSE
0x0447, 0x0427, // CYRILLIC SMALL LETTER CHE CYRILLIC CAPITAL LETTER CHE
0x0448, 0x0428, // CYRILLIC SMALL LETTER SHA CYRILLIC CAPITAL LETTER SHA
0x0449, 0x0429, // CYRILLIC SMALL LETTER SHCHA CYRILLIC CAPITAL LETTER SHCHA
0x044A, 0x042A, // CYRILLIC SMALL LETTER HARD SIGN CYRILLIC CAPITAL LETTER HARD SIGN
0x044B, 0x042B, // CYRILLIC SMALL LETTER YERU CYRILLIC CAPITAL LETTER YERU
0x044C, 0x042C, // CYRILLIC SMALL LETTER SOFT SIGN CYRILLIC CAPITAL LETTER SOFT SIGN
0x044D, 0x042D, // CYRILLIC SMALL LETTER E CYRILLIC CAPITAL LETTER E
0x044E, 0x042E, // CYRILLIC SMALL LETTER YU CYRILLIC CAPITAL LETTER YU
0x044F, 0x042F, // CYRILLIC SMALL LETTER YA CYRILLIC CAPITAL LETTER YA
0x0451, 0x0401, // CYRILLIC SMALL LETTER IO CYRILLIC CAPITAL LETTER IO
0x0452, 0x0402, // CYRILLIC SMALL LETTER DJE (SERBOCROATIAN) CYRILLIC CAPITAL LETTER DJE (SERBOCROATIAN)
0x0453, 0x0403, // CYRILLIC SMALL LETTER GJE CYRILLIC CAPITAL LETTER GJE
0x0454, 0x0404, // CYRILLIC SMALL LETTER UKRAINIAN IE CYRILLIC CAPITAL LETTER UKRAINIAN IE
0x0455, 0x0405, // CYRILLIC SMALL LETTER DZE CYRILLIC CAPITAL LETTER DZE
0x0456, 0x0406, // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I CYRILLIC CAPITAL LETTER BYELORUSSIAN_UKRAINIAN I
0x0457, 0x0407, // CYRILLIC SMALL LETTER YI (UKRAINIAN) CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
0x0458, 0x0408, // CYRILLIC SMALL LETTER JE CYRILLIC CAPITAL LETTER JE
0x0459, 0x0409, // CYRILLIC SMALL LETTER LJE CYRILLIC CAPITAL LETTER LJE
0x045A, 0x040A, // CYRILLIC SMALL LETTER NJE CYRILLIC CAPITAL LETTER NJE
0x045B, 0x040B, // CYRILLIC SMALL LETTER TSHE (SERBOCROATIAN) CYRILLIC CAPITAL LETTER TSHE (SERBOCROATIAN)
0x045C, 0x040C, // CYRILLIC SMALL LETTER KJE CYRILLIC CAPITAL LETTER KJE
0x045E, 0x040E, // CYRILLIC SMALL LETTER SHORT U (BYELORUSSIAN) CYRILLIC CAPITAL LETTER SHORT U (BYELORUSSIAN)
0x045F, 0x040F, // CYRILLIC SMALL LETTER DZHE CYRILLIC CAPITAL LETTER DZHE
0x0461, 0x0460, // CYRILLIC SMALL LETTER OMEGA CYRILLIC CAPITAL LETTER OMEGA
0x0463, 0x0462, // CYRILLIC SMALL LETTER YAT CYRILLIC CAPITAL LETTER YAT
0x0465, 0x0464, // CYRILLIC SMALL LETTER IOTIFIED E CYRILLIC CAPITAL LETTER IOTIFIED E
0x0467, 0x0466, // CYRILLIC SMALL LETTER LITTLE YUS CYRILLIC CAPITAL LETTER LITTLE YUS
0x0469, 0x0468, // CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
0x046B, 0x046A, // CYRILLIC SMALL LETTER BIG YUS CYRILLIC CAPITAL LETTER BIG YUS
0x046D, 0x046C, // CYRILLIC SMALL LETTER IOTIFIED BIG YUS CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
0x046F, 0x046E, // CYRILLIC SMALL LETTER KSI CYRILLIC CAPITAL LETTER KSI
0x0471, 0x0470, // CYRILLIC SMALL LETTER PSI CYRILLIC CAPITAL LETTER PSI
0x0473, 0x0472, // CYRILLIC SMALL LETTER FITA CYRILLIC CAPITAL LETTER FITA
0x0475, 0x0474, // CYRILLIC SMALL LETTER IZHITSA CYRILLIC CAPITAL LETTER IZHITSA
0x0477, 0x0476, // CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
0x0479, 0x0478, // CYRILLIC SMALL LETTER UK CYRILLIC CAPITAL LETTER UK
0x047B, 0x047A, // CYRILLIC SMALL LETTER ROUND OMEGA CYRILLIC CAPITAL LETTER ROUND OMEGA
0x047D, 0x047C, // CYRILLIC SMALL LETTER OMEGA WITH TITLO CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
0x047F, 0x047E, // CYRILLIC SMALL LETTER OT CYRILLIC CAPITAL LETTER OT
0x0481, 0x0480, // CYRILLIC SMALL LETTER KOPPA CYRILLIC CAPITAL LETTER KOPPA
0x0491, 0x0490, // CYRILLIC SMALL LETTER GHE WITH UPTURN CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0x0493, 0x0492, // CYRILLIC SMALL LETTER GHE WITH STROKE CYRILLIC CAPITAL LETTER GHE WITH STROKE
0x0495, 0x0494, // CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
0x0497, 0x0496, // CYRILLIC SMALL LETTER ZHE WITH DESCENDER CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
0x0499, 0x0498, // CYRILLIC SMALL LETTER ZE WITH DESCENDER CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
0x049B, 0x049A, // CYRILLIC SMALL LETTER KA WITH DESCENDER CYRILLIC CAPITAL LETTER KA WITH DESCENDER
0x049D, 0x049C, // CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
0x049F, 0x049E, // CYRILLIC SMALL LETTER KA WITH STROKE CYRILLIC CAPITAL LETTER KA WITH STROKE
0x04A1, 0x04A0, // CYRILLIC SMALL LETTER EASHKIR KA CYRILLIC CAPITAL LETTER BASHKIR KA
0x04A3, 0x04A2, // CYRILLIC SMALL LETTER EN WITH DESCENOER CYRILLIC CAPITAL LETTER EN WITH DESCENDER
0x04A5, 0x04A4, // CYRILLIC SMALL LIGATURE EN GHE CYRILLIC CAPITAL LIGATURE EN GHF
0x04A7, 0x04A6, // CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (ABKHASIAN) CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (ABKHASIAN)
0x04A9, 0x04A8, // CYRILLIC SMALL LETTER ABKHASIAN HA CYRILLIC CAPITAL LETTER ABKHASIAN HA
0x04AB, 0x04AA, // CYRILLIC SMALL LETTER ES WITH DESCENDER CYRILLIC CAPITAL LETTER ES WITH DESCENDER
0x04AD, 0x04AC, // CYRILLIC SMALL LETTER TE WITH DESCENDER CYRILLIC CAPITAL LETTER TE WITH DESCENDER
0x04AF, 0x04AE, // CYRILLIC SMALL LETTER STRAIGHT U CYRILLIC CAPITAL LETTER STRAIGHT U
0x04B1, 0x04B0, // CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
0x04B3, 0x04B2, // CYRILLIC SMALL LETTER HA WITH DESCENDER CYRILLIC CAPITAL LETTER HA WITH DESCENDER
0x04B5, 0x04B4, // CYRILLIC SMALL LIGATURE TE TSE (ABKHASIAN) CYRILLIC CAPITAL LIGATURE TE TSE (ABKHASIAN)
0x04B7, 0x04B6, // CYRILLIC SMALL LETTER CHE WITH DESCENDER CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
0x04B9, 0x04B8, // CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
0x04BB, 0x04BA, // CYRILLIC SMALL LETTER SHHA CYRILLIC CAPITAL LETTER SHHA
0x04BD, 0x04BC, // CYRILLIC SMALL LETTER ABKHASIAN CHE CYRILLIC CAPITAL LETTER ABKHASIAN CHE
0x04BF, 0x04BE, // CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
0x04C2, 0x04C1, // CYRILLIC SMALL LETTER ZHE WITH BREVE CYRILLIC CAPITAL LETTER ZHE WITH BREVE
0x04C4, 0x04C3, // CYRILLIC SMALL LETTER KA WITH HOOK CYRILLIC CAPITAL LETTER KA WITH HOOK
0x04C8, 0x04C7, // CYRILLIC SMALL LETTER EN WITH HOOK CYRILLIC CAPITAL LETTER EN WITH HOOK
0x04CC, 0x04CB, // CYRILLIC SMALL LETTER KHAKASSIAN CHE CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
0x04D1, 0x04D0, // CYRILLIC SMALL LETTER A WITH BREVE CYRILLIC CAPITAL LETTER A WITH BREVE
0x04D3, 0x04D2, // CYRILLIC SMALL LETTER A WITH DIAERESIS CYRILLIC CAPITAL LETTER A WITH DIAERESIS
0x04D5, 0x04D4, // CYRILLIC SMALL LIGATURE A IE CYRILLIC CAPITAL LIGATURE A IE
0x04D7, 0x04D6, // CYRILLIC SMALL LETTER IE WITH BREVE CYRILLIC CAPITAL LETTER IE WITH BREVE
0x04D9, 0x04D8, // CYRILLIC SMALL LETTER SCHWA CYRILLIC CAPITAL LETTER SCHWA
0x04DB, 0x04DA, // CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
0x04DD, 0x04DC, // CYRILLIC SMALL LETTER ZHE WITH DIAERESIS CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
0x04DF, 0x04DE, // CYRILLIC SMALL LETTER ZE WITH DIAERESIS CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
0x04E1, 0x04E0, // CYRILLIC SMALL LETTER ABKHASIAN DZE CYRILLIC CAPITAL LETTER ABKHASIAN DZE
0x04E3, 0x04E2, // CYRILLIC SMALL LETTER I WITH MACRON CYRILLIC CAPITAL LETTER I WITH MACRON
0x04E5, 0x04E4, // CYRILLIC SMALL LETTER I WITH DIAERESIS CYRILLIC CAPITAL LETTER I WITH DIAERESIS
0x04E7, 0x04E6, // CYRILLIC SMALL LETTER O WITH DIAERESIS CYRILLIC CAPITAL LETTER O WITH DIAERESIS
0x04E9, 0x04E8, // CYRILLIC SMALL LETTER BARRED O CYRILLIC CAPITAL LETTER BARRED O
0x04EB, 0x04EA, // CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
0x04EF, 0x04EE, // CYRILLIC SMALL LETTER U WITH MACRON CYRILLIC CAPITAL LETTER U WITH MACRON
0x04F1, 0x04F0, // CYRILLIC SMALL LETTER U WITH DIAERESIS CYRILLIC CAPITAL LETTER U WITH DIAERESIS
0x04F3, 0x04F2, // CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
0x04F5, 0x04F4, // CYRILLIC SMALL LETTER CHE AITH DIAERESIS CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
0x04F9, 0x04F8, // CYRILLIC SMALL LETTER YERU WITH DIAERESIS CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
0x0561, 0x0531, // ARMENIAN SMALL LETTER AYB ARMENIAN CAPITAL LETTER AYB
0x0562, 0x0532, // ARMENIAN SMALL LETTER BEN ARMENIAN CAPITAL LETTER BEN
0x0563, 0x0533, // ARMENIAN SMALL LETTER GIM ARMENIAN CAPITAL LETTER GIM
0x0564, 0x0534, // ARMENIAN SMALL LETTER DA ARMENIAN CAPITAL LETTER DA
0x0565, 0x0535, // ARMENIAN SMALL LETTER ECH ARMENIAN CAPITAL LETTER ECH
0x0566, 0x0536, // ARMENIAN SMALL LETTER ZA ARMENIAN CAPITAL LETTER ZA
0x0567, 0x0537, // ARMENIAN SMALL LETTER EH ARMENIAN CAPITAL LETTER EH
0x0568, 0x0538, // ARMENIAN SMALL LETTER ET ARMENIAN CAPITAL LETTER ET
0x0569, 0x0539, // ARMENIAN SMALL LETTER TO ARMENIAN CAPITAL LETTER TO
0x056A, 0x053A, // ARMENIAN SMALL LETTER ZHE ARMENIAN CAPITAL LETTER ZHE
0x056B, 0x053B, // ARMENIAN SMALL LETTER INI ARMENIAN CAPITAL LETTER INI
0x056C, 0x053C, // ARMENIAN SMALL LETTER LIWN ARMENIAN CAPITAL LETTER LIWN
0x056D, 0x053D, // ARMENIAN SMALL LETTER XEH ARMENIAN CAPITAL LETTER XEH
0x056E, 0x053E, // ARMENIAN SMALL LETTER CA ARMENIAN CAPITAL LETTER CA
0x056F, 0x053F, // ARMENIAN SMALL LETTER KEN ARMENIAN CAPITAL LETTER KEN
0x0570, 0x0540, // ARMENIAN SMALL LETTER HO ARMENIAN CAPITAL LETTER HO
0x0571, 0x0541, // ARMENIAN SMALL LETTER JA ARMENIAN CAPITAL LETTER JA
0x0572, 0x0542, // ARMENIAN SMALL LETTER GHAD ARMENIAN CAPITAL LETTER GHAD
0x0573, 0x0543, // ARMENIAN SMALL LETTER CHEH ARMENIAN CAPITAL LETTER CHEH
0x0574, 0x0544, // ARMENIAN SMALL LETTER MEN ARMENIAN CAPITAL LETTER MEN
0x0575, 0x0545, // ARMENIAN SMALL LETTER YI ARMENIAN CAPITAL LETTER YI
0x0576, 0x0546, // ARMENIAN SMALL LETTER NOW ARMENIAN CAPITAL LETTER NOW
0x0577, 0x0547, // ARMENIAN SMALL LETTER SNA ARMENIAN CAPITAL LETTER SHA
0x0578, 0x0548, // ARMENIAN SMALL LETTER VO ARMENIAN CAPITAL LETTER VO
0x0579, 0x0549, // ARMENIAN SMALL LETTER CHA ARMENIAN CAPITAL LETTER CHA
0x057A, 0x054A, // ARMENIAN SMALL LETTER PEH ARMENIAN CAPITAL LETTER PEH
0x057B, 0x054B, // ARMENIAN SMALL LETTER JHEH ARMENIAN CAPITAL LETTER JHEH
0x057C, 0x054C, // ARMENIAN SMALL LETTER RA ARMENIAN CAPITAL LETTER RA
0x057D, 0x054D, // ARMENIAN SMALL LETTER SEH ARMENIAN CAPITAL LETTER SEH
0x057E, 0x054E, // ARMENIAN SMALL LETTER VEW ARMENIAN CAPITAL LETTER VEW
0x057F, 0x054F, // ARMENIAN SMALL LETTER TIWN ARMENIAN CAPITAL LETTER TIWN
0x0580, 0x0550, // ARMENIAN SMALL LETTER REH ARMENIAN CAPITAL LETTER REH
0x0581, 0x0551, // ARMENIAN SMALL LETTER CO ARMENIAN CAPITAL LETTER CO
0x0582, 0x0552, // ARMENIAN SMALL LETTER YIWN ARMENIAN CAPITAL LETTER YIWN
0x0583, 0x0553, // ARMENIAN SMALL LETTER PIWP ARMENIAN CAPITAL LETTER PIWR
0x0584, 0x0554, // ARMENIAN SMALL LETTER KEH ARMENIAN CAPITAL LETTER KEH
0x0585, 0x0555, // ARMENIAN SMALL LETTER OH ARMENIAN CAPITAL LETTER OH
0x0586, 0x0556, // ARMENIAN SMALL LETTER FEH ARMENIAN CAPITAL LETTER FEH
0x10D0, 0x10A0, // GEORGIAN LETTER AN GEORGIAN CAPITAL LETTER AN (KHUTSURI)
0x10D1, 0x10A1, // GEORGIAN LETTER BAN GEORGIAN CAPITAL LETTER BAN (KHUTSURI)
0x10D2, 0x10A2, // GEORGIAN LETTER GAN GEORGIAN CAPITAL LETTER GAN (KHUTSURI)
0x10D3, 0x10A3, // GEORGIAN LETTER DON GEORGIAN CAPITAL LETTER DON (KHUTSURI)
0x10D4, 0x10A4, // GEORGIAN LETTER EN GEORGIAN CAPITAL LETTER EN (KHUTSURI)
0x10D5, 0x10A5, // GEORGIAN LETTER VIN GEORGIAN CAPITAL LETTER VIN (KHUTSURI)
0x10D6, 0x10A6, // GEORGIAN LETTER ZEN GEORGIAN CAPITAL LETTER ZEN (KHUTSURI)
0x10D7, 0x10A7, // GEORGIAN LETTER TAN GEORGIAN CAPITAL LETTER TAN (KHUTSURI)
0x10D8, 0x10A8, // GEORGIAN LETTER IN GEORGIAN CAPITAL LETTER IN (KHUTSURI)
0x10D9, 0x10A9, // GEORGIAN LETTER KAN GEORGIAN CAPITAL LETTER KAN (KHUTSURI)
0x10DA, 0x10AA, // GEORGIAN LETTER LAS GEORGIAN CAPITAL LETTER LAS (KHUTSURI)
0x10DB, 0x10AB, // GEORGIAN LETTER MAN GEORGIAN CAPITAL LETTER MAN (KHUTSURI)
0x10DC, 0x10AC, // GEORGIAN LETTER NAR GEORGIAN CAPITAL LETTER NAR (KHUTSURI)
0x10DD, 0x10AD, // GEORGIAN LETTER ON GEORGIAN CAPITAL LETTER ON (KHUTSURI)
0x10DE, 0x10AE, // GEORGIAN LETTER PAR GEORGIAN CAPITAL LETTER PAR (KHUTSURI)
0x10DF, 0x10AF, // GEORGIAN LETTER ZHAR GEORGIAN CAPITAL LETTER ZHAR (KHUTSURI)
0x10E0, 0x10B0, // GEORGIAN LETTER RAE GEORGIAN CAPITAL LETTER RAE (KHUTSURI)
0x10E1, 0x10B1, // GEORGIAN LETTER SAN GEORGIAN CAPITAL LETTER SAN (KHUTSURI)
0x10E2, 0x10B2, // GEORGIAN LETTER TAR GEORGIAN CAPITAL LETTER TAR (KHUTSURI)
0x10E3, 0x10B3, // GEORGIAN LETTER UN GEORGIAN CAPITAL LETTER UN (KHUTSURI)
0x10E4, 0x10B4, // GEORGIAN LETTER PHAR GEORGIAN CAPITAL LETTER PHAR (KHUTSURI)
0x10E5, 0x10B5, // GEORGIAN LETTER KHAR GEORGIAN CAPITAL LETTER KHAR (KHUTSURI)
0x10E6, 0x10B6, // GEORGIAN LETTER GHAN GEORGIAN CAPITAL LETTER GHAN (KHUTSURI)
0x10E7, 0x10B7, // GEORGIAN LETTER QAR GEORGIAN CAPITAL LETTER QAR (KHUTSURI)
0x10E8, 0x10B8, // GEORGIAN LETTER SHIN GEORGIAN CAPITAL LETTER SHIN (KHUTSURI)
0x10E9, 0x10B9, // GEORGIAN LETTER CHIN GEORGIAN CAPITAL LETTER CHIN (KHUTSURI)
0x10EA, 0x10BA, // GEORGIAN LETTER CAN GEORGIAN CAPITAL LETTER CAN (KHUTSURI)
0x10EB, 0x10BB, // GEORGIAN LETTER JIL GEORGIAN CAPITAL LETTER JIL (KHUTSURI)
0x10EC, 0x10BC, // GEORGIAN LETTER CIL GEORGIAN CAPITAL LETTER CIL (KHUTSURI)
0x10ED, 0x10BD, // GEORGIAN LETTER CHAR GEORGIAN CAPITAL LETTER CHAR (KHUTSURI)
0x10EE, 0x10BE, // GEORGIAN LETTER XAN GEORGIAN CAPITAL LETTER XAN (KHUTSURI)
0x10EF, 0x10BF, // GEORGIAN LETTER JHAN GEORGIAN CAPITAL LETTER JHAN (KHUTSURI)
0x10F0, 0x10C0, // GEORGIAN LETTER HAE GEORGIAN CAPITAL LETTER HAE (KHUTSURI)
0x10F1, 0x10C1, // GEORGIAN LETTER HE GEORGIAN CAPITAL LETTER HE (KHUTSURI)
0x10F2, 0x10C2, // GEORGIAN LETTER HIE GEORGIAN CAPITAL LETTER HIE (KHUTSURI)
0x10F3, 0x10C3, // GEORGIAN LETTER WE GEORGIAN CAPITAL LETTER WE (KHUTSURI)
0x10F4, 0x10C4, // GEORGIAN LETTER HAR GEORGIAN CAPITAL LETTER HAR (KHUTSURI)
0x10F5, 0x10C5, // GEORGIAN LETTER HOE GEORGIAN CAPITAL LETTER HOE (KHUTSURI)
0x1E01, 0x1E00, // LATIN SMALL LETTER A WITH RING BELOW LATIN CAPITAL LETTER A WITH RING BELOW
0x1E03, 0x1E02, // LATIN SMALL LETTER B WITH DOT ABOVE LATIN CAPITAL LETTER B WITH DOT ABOVE
0x1E05, 0x1E04, // LATIN SMALL LETTER B WITH DOT BELOW LATIN CAPITAL LETTER B WITH DOT BELOW
0x1E07, 0x1E06, // LATIN SMALL LETTER B WITH LINE BELOW LATIN CAPITAL LETTER B WITH LINE BELOW
0x1E09, 0x1E08, // LATIN SMALL LETTER C WITH CEDILLA AND ACUTE LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
0x1E0B, 0x1E0A, // LATIN SMALL LETTER D WITH DOT ABOVE LATIN CAPITAL LETTER D WITH DOT ABOVE
0x1E0D, 0x1E0C, // LATIN SMALL LETTER D WITH DOT BELOW LATIN CAPITAL LETTER D WITH DOT BELOW
0x1E0F, 0x1E0E, // LATIN SMALL LETTER D WITH LINE BELOW LATIN CAPITAL LETTER D WITH LINE BELOW
0x1E11, 0x1E10, // LATIN SMALL LETTER D WITH CEDILLA LATIN CAPITAL LETTER D WITH CEDILLA
0x1E13, 0x1E12, // LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
0x1E15, 0x1E14, // LATIN SMALL LETTER E WITH MACRON AND GRAVE LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
0x1E17, 0x1E16, // LATIN SMALL LETTER E WITH MACRON AND ACUTE LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
0x1E19, 0x1E18, // LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
0x1E1B, 0x1E1A, // LATIN SMALL LETTER E WITH TILDE BELOW LATIN CAPITAL LETTER E WITH TILDE BELOW
0x1E1D, 0x1E1C, // LATIN SMALL LETTER E WITH CEDILLA AND BREVE LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
0x1E1F, 0x1E1E, // LATIN SMALL LETTER F WITH DOT ABOVE LATIN CAPITAL LETTER F WITH DOT ABOVE
0x1E21, 0x1E20, // LATIN SMALL LETTER G WITH MACRON LATIN CAPITAL LETTER G WITH MACRON
0x1E23, 0x1E22, // LATIN SMALL LETTER H WITH DOT ABOVE LATIN CAPITAL LETTER H WITH DOT ABOVE
0x1E25, 0x1E24, // LATIN SMALL LETTER H WITH DOT BELOW LATIN CAPITAL LETTER H WITH DOT BELOW
0x1E27, 0x1E26, // LATIN SMALL LETTER H WITH DIAERESIS LATIN CAPITAL LETTER H WITH DIAERESIS
0x1E29, 0x1E28, // LATIN SMALL LETTER H WITH CEDILLA LATIN CAPITAL LETTER H WITH CEDILLA
0x1E2B, 0x1E2A, // LATIN SMALL LETTER H WITH BREVE BELOW LATIN CAPITAL LETTER H WITH BREVE BELOW
0x1E2D, 0x1E2C, // LATIN SMALL LETTER I WITH TILDE BELOW LATIN CAPITAL LETTER I WITH TILDE BELOW
0x1E2F, 0x1E2E, // LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
0x1E31, 0x1E30, // LATIN SMALL LETTER K WITH ACUTE LATIN CAPITAL LETTER K WITH ACUTE
0x1E33, 0x1E32, // LATIN SMALL LETTER K WITH DOT BELOW LATIN CAPITAL LETTER K WITH DOT BELOW
0x1E35, 0x1E34, // LATIN SMALL LETTER K WITH LINE BELOW LATIN CAPITAL LETTER K WITH LINE BELOW
0x1E37, 0x1E36, // LATIN SMALL LETTER L WITH DOT BELOW LATIN CAPITAL LETTER L WITH DOT BELOW
0x1E39, 0x1E38, // LATIN SMALL LETTER L WITH DOT BELOW AND MACRON LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
0x1E3B, 0x1E3A, // LATIN SMALL LETTER L WITH LINE BELOW LATIN CAPITAL LETTER L WITH LINE BELOW
0x1E3D, 0x1E3C, // LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
0x1E3F, 0x1E3E, // LATIN SMALL LETTER M WITH ACUTE LATIN CAPITAL LETTER M WITH ACUTE
0x1E41, 0x1E40, // LATIN SMALL LETTER M WITH DOT ABOVE LATIN CAPITAL LETTER M WITH DOT ABOVE
0x1E43, 0x1E42, // LATIN SMALL LETTER M WITH DOT BELOW LATIN CAPITAL LETTER M WITH DOT BELOW
0x1E45, 0x1E44, // LATIN SMALL LETTER N WITH DOT ABOVE LATIN CAPITAL LETTER N WITH DOT ABOVE
0x1E47, 0x1E46, // LATIN SMALL LETTER N WITH DOT BELOW LATIN CAPITAL LETTER N WITH DOT BELOW
0x1E49, 0x1E48, // LATIN SMALL LETTER N WITH LINE BELOW LATIN CAPITAL LETTER N WITH LINE BELOW
0x1E4B, 0x1E4A, // LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
0x1E4D, 0x1E4C, // LATIN SMALL LETTER O WITH TILDE AND ACUTE LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
0x1E4F, 0x1E4E, // LATIN SMALL LETTER O WITH TlLDE AND DIAERESIS LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
0x1E51, 0x1E50, // LATIN SMALL LETTER O WITH MACRON AND GRAVE LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
0x1E53, 0x1E52, // LATIN SMALL LETTER O WITH MACRON AND ACUTE LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
0x1E55, 0x1E54, // LATIN SMALL LETTER P WITH ACUTE LATIN CAPITAL LETTER P WITH ACUTE
0x1E57, 0x1E56, // LATIN SMALL LETTER P WITH DOT ABOVE LATIN CAPITAL LETTER P WITH DOT ABOVE
0x1E59, 0x1E58, // LATIN SMALL LETTER R WITH DOT ABOVE LATIN CAPITAL LETTER R WITH DOT ABOVE
0x1E5B, 0x1E5A, // LATIN SMALL LETTER R WITH DOT BELOW LATIN CAPITAL LETTER R WITH DOT BELOW
0x1E5D, 0x1E5C, // LATIN SMALL LETTER R WITH DOT BELOW AND MACRON LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
0x1E5F, 0x1E5E, // LATIN SMALL LETTER R WITH LINE BELOW LATIN CAPITAL LETTER R WITH LINE BELOW
0x1E61, 0x1E60, // LATIN SMALL LETTER S WITH DOT ABOVE LATIN CAPITAL LETTER S WITH DOT ABOVE
0x1E63, 0x1E62, // LATIN SMALL LETTER S WITH DOT BELOW LATIN CAPITAL LETTER S WITH DOT BELOW
0x1E65, 0x1E64, // LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
0x1E67, 0x1E66, // LATIN SMALL LETTER S WITH CARON AND DOT ABOVE LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
0x1E69, 0x1E68, // LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
0x1E6B, 0x1E6A, // LATIN SMALL LETTER T WITH DOT ABOVE LATIN CAPITAL LETTER T WITH DOT ABOVE
0x1E6D, 0x1E6C, // LATIN SMALL LETTER T WITH DOT BELOW LATIN CAPITAL LETTER T WITH DOT BELOW
0x1E6F, 0x1E6E, // LATIN SMALL LETTER T WITH LINE BELOW LATIN CAPITAL LETTER T WITH LINE BELOW
0x1E71, 0x1E70, // LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
0x1E73, 0x1E72, // LATIN SMALL LETTER U WITH DIAERESIS BELOW LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
0x1E75, 0x1E74, // LATIN SMALL LETTER U WITH TILDE BELOW LATIN CAPITAL LETTER U WITH TILDE BELOW
0x1E77, 0x1E76, // LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
0x1E79, 0x1E78, // LATIN SMALL LETTER U WITH TILDE AND ACUTE LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
0x1E7B, 0x1E7A, // LATIN SMALL LETTER U WITH MACRON AND DIAERESIS LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
0x1E7D, 0x1E7C, // LATIN SMALL LETTER V WITH TILDE LATIN CAPITAL LETTER V WITH TILDE
0x1E7F, 0x1E7E, // LATIN SMALL LETTER V WITH DOT BELOW LATIN CAPITAL LETTER V WITH DOT BELOW
0x1E81, 0x1E80, // LATIN SMALL LETTER W WITH GRAVE LATIN CAPITAL LETTER W WITH GRAVE
0x1E83, 0x1E82, // LATIN SMALL LETTER W WITH ACUTE LATIN CAPITAL LETTER W WITH ACUTE
0x1E85, 0x1E84, // LATIN SMALL LETTER W WITH DIAERESIS LATIN CAPITAL LETTER W WITH DIAERESIS
0x1E87, 0x1E86, // LATIN SMALL LETTER W WITH DOT ABOVE LATIN CAPITAL LETTER W WITH DOT ABOVE
0x1E89, 0x1E88, // LATIN SMALL LETTER W WITH DOT BELOW LATIN CAPITAL LETTER W WITH DOT BELOW
0x1E8B, 0x1E8A, // LATIN SMALL LETTER X WITH DOT ABOVE LATIN CAPITAL LETTER X WITH DOT ABOVE
0x1E8D, 0x1E8C, // LATIN SMALL LETTER X WITH DIAERESIS LATIN CAPITAL LETTER X5 WITH DIAERESIS
0x1E8F, 0x1E8E, // LATIN SMALL LETTER Y WITH DOT ABOVE LATIN CAPITAL LETTER Y WITH DOT ABOVE
0x1E91, 0x1E90, // LATIN SMALL LETTER Z WITH CIRCUMFLEX LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
0x1E93, 0x1E92, // LATIN SMALL LETTER Z WITH DOT BELOW LATIN CAPITAL LETTER Z WITH DOT BELOW
0x1E95, 0x1E94, // LATIN SMALL LETTER Z WITH LINE BELOW LATIN CAPITAL LETTER Z WITH LINE BELOW
0x1EA1, 0x1EA0, // LATIN SMALL LETTER A WITH DOT BELOW LATIN CAPITAL LETTER A WITH DOT BELOW
0x1EA3, 0x1EA2, // LATIN SMALL LETTER A WITH HOOK ABOVE LATIN CAPITAL LETTER A WITH HOOK ABOVE
0x1EA5, 0x1EA4, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
0x1EA7, 0x1EA6, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
0x1EA9, 0x1EA8, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0x1EAB, 0x1EAA, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
0x1EAD, 0x1EAC, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0x1EAF, 0x1EAE, // LATIN SMALL LETTER A WITH BREVE AND ACUTE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
0x1EB1, 0x1EB0, // LATIN SMALL LETTER A WITH BREVE AND GRAVE LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
0x1EB3, 0x1EB2, // LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
0x1EB5, 0x1EB4, // LATIN SMALL LETTER A WITH BREVE AND TILDE LATIN CAPITAL LETTER A WITH BREVE AND TILDE
0x1EB7, 0x1EB6, // LATIN SMALL LETTER A WITH BREVE AND DOT BELOW LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
0x1EB9, 0x1EB8, // LATIN SMALL LETTER E WITH DOT BELOW LATIN CAPITAL LETTER E WITH DOT BELOW
0x1EBB, 0x1EBA, // LATIN SMALL LETTER E WITH HOOK ABOVE LATIN CAPITAL LETTER E WITH HOOK ABOVE
0x1EBD, 0x1EBC, // LATIN SMALL LETTER E WITH TILDE LATIN CAPITAL LETTER E WITH TILDE
0x1EBF, 0x1EBE, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
0x1EC1, 0x1EC0, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
0x1EC3, 0x1EC2, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0x1EC5, 0x1EC4, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
0x1EC7, 0x1EC6, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0x1EC9, 0x1EC8, // LATIN SMALL LETTER I WITH HOOK ABOVE LATIN CAPITAL LETTER I WITH HOOK ABOVE
0x1ECB, 0x1ECA, // LATIN SMALL LETTER I WITH DOT BELOW LATIN CAPITAL LETTER I WITH DOT BELOW
0x1ECD, 0x1ECC, // LATIN SMALL LETTER O WITH DOT BELOW LATIN CAPITAL LETTER O WITH DOT BELOW
0x1ECF, 0x1ECE, // LATIN SMALL LETTER O WITH HOOK ABOVE LATIN CAPITAL LETTER O WITH HOOK ABOVE
0x1ED1, 0x1ED0, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
0x1ED3, 0x1ED2, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
0x1ED5, 0x1ED4, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0x1ED7, 0x1ED6, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
0x1ED9, 0x1ED8, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0x1EDB, 0x1EDA, // LATIN SMALL LETTER O WITH HORN AND ACUTE LATIN CAPITAL LETTER O WITH HORN AND ACUTE
0x1EDD, 0x1EDC, // LATIN SMALL LETTER O WITH HORN AND GRAVE LATIN CAPITAL LETTER O WITH HORN AND GRAVE
0x1EDF, 0x1EDE, // LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
0x1EE1, 0x1EE0, // LATIN SMALL LETTER O WITH HORN AND TILDE LATIN CAPITAL LETTER O WITH HORN AND TILDE
0x1EE3, 0x1EE2, // LATIN SMALL LETTER O WITH HORN AND DOT BELOW LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
0x1EE5, 0x1EE4, // LATIN SMALL LETTER U WITH DOT BELOW LATIN CAPITAL LETTER U WITH DOT BELOW
0x1EE7, 0x1EE6, // LATIN SMALL LETTER U WITH HOOK ABOVE LATIN CAPITAL LETTER U WITH HOOK ABOVE
0x1EE9, 0x1EE8, // LATIN SMALL LETTER U WITH HORN AND ACUTE LATIN CAPITAL LETTER U WITH HORN AND ACUTE
0x1EEB, 0x1EEA, // LATIN SMALL LETTER U WITH HORN AND GRAVE LATIN CAPITAL LETTER U WITH HORN AND GRAVE
0x1EED, 0x1EEC, // LATIN SMALL LETTER U WITH HORN AND HOCK ABOVE LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
0x1EEF, 0x1EEE, // LATIN SMALL LETTER U WITH HORN AND TILDE LATIN CAPITAL LETTER U WITH HORN AND TILDE
0x1EF1, 0x1EF0, // LATIN SMALL LETTER U WITH HORN AND DOT BELOW LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
0x1EF3, 0x1EF2, // LATIN SMALL LETTER Y WITH GRAVE LATIN CAPITAL LETTER Y WITH GRAVE
0x1EF5, 0x1EF4, // LATIN SMALL LETTER Y WITH DOT BELOW LATIN CAPITAL LETTER Y WITH DOT BELOW
0x1EF7, 0x1EF6, // LATIN SMALL LETTER Y WITH HOOK ABOVE LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0x1EF9, 0x1EF8, // LATIN SMALL LETTER Y WITH TILDE LATIN CAPITAL LETTER Y WITH TILDE
0x1F00, 0x1F08, // GREEK SMALL LETTER ALPHA WITH PSILI GREEK CAPITAL LETTER ALPHA WITH PSILI
0x1F01, 0x1F09, // GREEK SMALL LETTER ALPHA WITH DASIA GREEK CAPITAL LETTER ALPHA WITH DASIA
0x1F02, 0x1F0A, // GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
0x1F03, 0x1F0B, // GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
0x1F04, 0x1F0C, // GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
0x1F05, 0x1F0D, // GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
0x1F06, 0x1F0E, // GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
0x1F07, 0x1F0F, // GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
0x1F10, 0x1F18, // GREEK SMALL LETTER EPSILON WITH PSILI GREEK CAPITAL LETTER EPSILON WITH PSILI
0x1F11, 0x1F19, // GREEK SMALL LETTER EPSILON WITH DASIA GREEK CAPITAL LETTER EPSILON WITH DASIA
0x1F12, 0x1F1A, // GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
0x1F13, 0x1F1B, // GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
0x1F14, 0x1F1C, // GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
0x1F15, 0x1F1D, // GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
0x1F20, 0x1F28, // GREEK SMALL LETTER ETA WITH PSILI GREEK CAPITAL LETTER ETA WITH PSILI
0x1F21, 0x1F29, // GREEK SMALL LETTER ETA WITH DASIA GREEK CAPITAL LETTER ETA WITH DASIA
0x1F22, 0x1F2A, // GREEK SMALL LETTER ETA WITH PSILI AND VARIA GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
0x1F23, 0x1F2B, // GREEK SMALL LETTER ETA WITH DASIA AND VARIA GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
0x1F24, 0x1F2C, // GREEK SMALL LETTER ETA WITH PSILI AND OXIA GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
0x1F25, 0x1F2D, // GREEK SMALL LETTER ETA WITH DASIA AND OXIA GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
0x1F26, 0x1F2E, // GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
0x1F27, 0x1F2F, // GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
0x1F30, 0x1F38, // GREEK SMALL LETTER IOTA WITH PSILI GREEK CAPITAL LETTER IOTA WITH PSILI
0x1F31, 0x1F39, // GREEK SMALL LETTER IOTA WITH DASIA GREEK CAPITAL LETTER IOTA WITH DASIA
0x1F32, 0x1F3A, // GREEK SMALL LETTER IOTA WITH PSILI AND VARIA GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
0x1F33, 0x1F3B, // GREEK SMALL LETTER IOTA WITH DASIA AND VARIA GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
0x1F34, 0x1F3C, // GREEK SMALL LETTER IOTA WITH PSILI AND OXIA GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
0x1F35, 0x1F3D, // GREEK SMALL LETTER IOTA WITH DASIA AND OXIA GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
0x1F36, 0x1F3E, // GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
0x1F37, 0x1F3F, // GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
0x1F40, 0x1F48, // GREEK SMALL LETTER OMICRON WITH PSILI GREEK CAPITAL LETTER OMICRON WITH PSILI
0x1F41, 0x1F49, // GREEK SMALL LETTER OMICRON WITH DASIA GREEK CAPITAL LETTER OMICRON WITH DASIA
0x1F42, 0x1F4A, // GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
0x1F43, 0x1F4B, // GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
0x1F44, 0x1F4C, // GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
0x1F45, 0x1F4D, // GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
0x1F51, 0x1F59, // GREEK SMALL LETTER UPSILON WITH DASIA GREEK CAPITAL LETTER UPSILON WITH OASIS
0x1F53, 0x1F5B, // GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
0x1F55, 0x1F5D, // GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
0x1F57, 0x1F5F, // GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
0x1F60, 0x1F68, // GREEK SMALL LETTER OMEGA WITh PSILI GREEK CAPITAL LETTER OMEGA WITH PSILI
0x1F61, 0x1F69, // GREEK SMALL LETTER OMEGA WITH DASIA GREEK CAPITAL LETTER OMEGA WITH DASIA
0x1F62, 0x1F6A, // GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
0x1F63, 0x1F6B, // GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
0x1F64, 0x1F6C, // GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
0x1F65, 0x1F6D, // GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
0x1F66, 0x1F6E, // GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
0x1F67, 0x1F6F, // GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
0x1F80, 0x1F88, // GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITh PSILI AND PROSGEGRAMMENI
0x1F81, 0x1F89, // GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
0x1F82, 0x1F8A, // GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
0x1F83, 0x1F8B, // GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
0x1F84, 0x1F8C, // GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMEN
0x1F85, 0x1F8D, // GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMEN
0x1F86, 0x1F8E, // GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
0x1F87, 0x1F8F, // GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
0x1F90, 0x1F98, // GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
0x1F91, 0x1F99, // GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
0x1F92, 0x1F9A, // GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
0x1F93, 0x1F9B, // GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
0x1F94, 0x1F9C, // GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
0x1F95, 0x1F9D, // GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
0x1F96, 0x1F9E, // GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
0x1F97, 0x1F9F, // GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
0x1FA0, 0x1FA8, // GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
0x1FA1, 0x1FA9, // GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
0x1FA2, 0x1FAA, // GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
0x1FA3, 0x1FAB, // GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
0x1FA4, 0x1FAC, // GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
0x1FA5, 0x1FAD, // GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
0x1FA6, 0x1FAE, // GREEK SMALL LETTER OMEGA WITh PSILI AND PERISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
0x1FA7, 0x1FAF, // GREEK SMALL LETTER OMEGA WITH DASIA AND PEPISPOMENI AND YPOGEGRAMMENI GREEK CAPITAL LETTER OMECA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
0x1FB0, 0x1FB8, // GREEK SMALL LETTER ALPHA WITH VRACHY GREEK CAPITAL LETTER ALPHA WITH VRACHY
0x1FB1, 0x1FB9, // GREEK SMALL LETTER ALPHA WITH MACRON GREEK CAPITAL LETTER ALPHA WITH MACRON
0x1FD0, 0x1FD8, // GREEK SMALL LETTER IOTA WITH VRACHY GREEK CAPITAL LETTER IOTA WITH VRACHY
0x1FD1, 0x1FD9, // GREEK SMALL LETTER IOTA WITH MACRON GREEK CAPITAL LETTER IOTA WITH MACRON
0x1FE0, 0x1FE8, // GREEK SMALL LETTER UPSILON WITH VRACHY GREEK CAPITAL LETTER UPSILON WITH VRACHY
0x1FE1, 0x1FE9, // GREEK SMALL LETTER UPSILON WITH MACRON GREEK CAPITAL LETTER UPSILON WITH MACRON
0x24D0, 0x24B6, // CIRCLED LATIN SMALL LETTER A CIRCLED LATIN CAPITAL LETTER A
0x24D1, 0x24B7, // CIRCLED LATIN SMALL LETTER B CIRCLED LATIN CAPITAL LETTER B
0x24D2, 0x24B8, // CIRCLED LATIN SMALL LETTER C CIRCLED LATIN CAPITAL LETTER C
0x24D3, 0x24B9, // CIRCLED LATIN SMALL LETTER D CIRCLED LATIN CAPITAL LETTER D
0x24D4, 0x24BA, // CIRCLED LATIN SMALL LETTER E CIRCLED LATIN CAPITAL LETTER E
0x24D5, 0x24BB, // CIRCLED LATIN SMALL LETTER F CIRCLED LATIN CAPITAL LETTER F
0x24D6, 0x24BC, // CIRCLED LATIN SMALL LETTER G CIRCLED LATIN CAPITAL LETTER G
0x24D7, 0x24BD, // CIRCLED LATIN SMALL LETTER H CIRCLED LATIN CAPITAL LETTER H
0x24D8, 0x24BE, // CIRCLED LATIN SMALL LETTER I CIRCLED LATIN CAPITAL LETTER I
0x24D9, 0x24BF, // CIRCLED LATIN SMALL LETTER J CIRCLED LATIN CAPITAL LETTER J
0x24DA, 0x24C0, // CIRCLED LATIN SMALL LETTER K CIRCLED LATIN CAPITAL LETTER K
0x24DB, 0x24C1, // CIRCLED LATIN SMALL LETTER L CIRCLED LATIN CAPITAL LETTER L
0x24DC, 0x24C2, // CIRCLED LATIN SMALL LETTER M CIRCLED LATIN CAPITAL LETTER M
0x24DD, 0x24C3, // CIRCLED LATIN SMALL LETTER N CIRCLED LATIN CAPITAL LETTER N
0x24DE, 0x24C4, // CIRCLED LATIN SMALL LETTER O CIRCLED LATIN CAPITAL LETTER O
0x24DF, 0x24C5, // CIRCLED LATIN SMALL LETTER P CIRCLED LATIN CAPITAL LETTER P
0x24E0, 0x24C6, // CIRCLED LATIN SMALL LETTER Q CIRCLED LATIN CAPITAL LETTER Q
0x24E1, 0x24C7, // CIRCLED LATIN SMALL LETTER R CIRCLED LATIN CAPITAL LETTER R
0x24E2, 0x24C8, // CIRCLED LATIN SMALL LETTER S CIRCLED LATIN CAPITAL LETTER S
0x24E3, 0x24C9, // CIRCLED LATIN SMALL LETTER T CIRCLED LATIN CAPITAL LETTER T
0x24E4, 0x24CA, // CIRCLED LATIN SMALL LETTER U CIRCLED LATIN CAPITAL LETTER U
0x24E5, 0x24CB, // CIRCLED LATIN SMALL LETTER V CIRCLED LATIN CAPITAL LETTER V
0x24E6, 0x24CC, // CIRCLED LATIN SMALL LETTER W CIRCLED LATIN CAPITAL LETTER W
0x24E7, 0x24CD, // CIRCLED LATIN SMALL LETTER X CIRCLED LATIN CAPITAL LETTER X
0x24E8, 0x24CE, // CIRCLED LATIN SMALL LETTER Y CIRCLED LATIN CAPITAL LETTER Y
0x24E9, 0x24CF, // CIRCLED LATIN SMALL LETTER Z CIRCLED LATIN CAPITAL LETTER Z
0xFF41, 0xFF21, // FULLWIDTH LATIN SMALL LETTER A FULLWIDTH LATIN CAPITAL LETTER A
0xFF42, 0xFF22, // FULLWIDTH LATIN SMALL LETTER B FULLWIDTH LATIN CAPITAL LETTER B
0xFF43, 0xFF23, // FULLWIDTH LATIN SMALL LETTER C FULLWIDTH LATIN CAPITAL LETTER C
0xFF44, 0xFF24, // FULLWIDTH LATIN SMALL LETTER D FULLWIDTH LATIN CAPITAL LETTER D
0xFF45, 0xFF25, // FULLWIDTH LATIN SMALL LETTER E FULLWIDTH LATIN CAPITAL LETTER E
0xFF46, 0xFF26, // FULLWIDTH LATIN SMALL LETTER F FULLWIDTH LATIN CAPITAL LETTER F
0xFF47, 0xFF27, // FULLWIDTH LATIN SMALL LETTER G FULLWIDTH LATIN CAPITAL LETTER G
0xFF48, 0xFF28, // FULLWIDTH LATIN SMALL LETTER H FULLWIDTH LATIN CAPITAL LETTER H
0xFF49, 0xFF29, // FULLWIDTH LATIN SMALL LETTER I FULLWIDTH LATIN CAPITAL LETTER I
0xFF4A, 0xFF2A, // FULLWIDTH LATIN SMALL LETTER J FULLWIDTH LATIN CAPITAL LETTER J
0xFF4B, 0xFF2B, // FULLWIDTH LATIN SMALL LETTER K FULLWIDTH LATIN CAPITAL LETTER K
0xFF4C, 0xFF2C, // FULLWIDTH LATIN SMALL LETTER L FULLWIDTH LATIN CAPITAL LETTER L
0xFF4D, 0xFF2D, // FULLWIDTH LATIN SMALL LETTER M FULLWIDTH LATIN CAPITAL LETTER M
0xFF4E, 0xFF2E, // FULLWIDTH LATIN SMALL LETTER N FULLWIDTH LATIN CAPITAL LETTER N
0xFF4F, 0xFF2F, // FULLWIDTH LATIN SMALL LETTER O FULLWIDTH LATIN CAPITAL LETTER O
0xFF50, 0xFF30, // FULLWIDTH LATIN SMALL LETTER P FULLWIDTH LATIN CAPITAL LETTER P
0xFF51, 0xFF31, // FULLWIDTH LATIN SMALL LETTER Q FULLWIDTH LATIN CAPITAL LETTER Q
0xFF52, 0xFF32, // FULLWIDTH LATIN SMALL LETTER R FULLWIDTH LATIN CAPITAL LETTER R
0xFF53, 0xFF33, // FULLWIDTH LATIN SMALL LETTER S FULLWIDTH LATIN CAPITAL LETTER S
0xFF54, 0xFF34, // FULLWIDTH LATIN SMALL LETTER T FULLWIDTH LATIN CAPITAL LETTER T
0xFF55, 0xFF35, // FULLWIDTH LATIN SMALL LETTER U FULLWIDTH LATIN CAPITAL LETTER U
0xFF56, 0xFF36, // FULLWIDTH LATIN SMALL LETTER V FULLWIDTH LATIN CAPITAL LETTER V
0xFF57, 0xFF37, // FULLWIDTH LATIN SMALL LETTER W FULLWIDTH LATIN CAPITAL LETTER W
0xFF58, 0xFF38, // FULLWIDTH LATIN SMALL LETTER X FULLWIDTH LATIN CAPITAL LETTER X
0xFF59, 0xFF39, // FULLWIDTH LATIN SMALL LETTER Y FULLWIDTH LATIN CAPITAL LETTER Y
0xFF5A, 0xFF3A, // FULLWIDTH LATIN SMALL LETTER Z FULLWIDTH LATIN CAPITAL LETTER Z
]
)

View File

@ -0,0 +1,7 @@
fn test_utf8_util() {
src:="ăĂ ôÔ testo æ"
upper:=src.utf8_to_upper()
lower:=src.utf8_to_lower()
assert upper=="ĂĂ ÔÔ TESTO Æ"
assert lower=="ăă ôô testo æ"
}