1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
// This file contains the IDN character blocklist.
// Each entry represents a range of blocked characters.
// Ranges are defined as:
// { firstCharacterInRange, lastCharacterInRange }
// IMPORTANT: Make sure this list is sorted in ascending order
// ASCII Space
{ 0x0020, 0x0020 },
{ 0x00A0, 0x00A0 },
{ 0x00BC, 0x00BE },
{ 0x0138, 0x0138 },
{ 0x01C3, 0x01C3 },
{ 0x02D0, 0x02D0 },
{ 0x0337, 0x0338 },
{ 0x0589, 0x058A },
{ 0x05C3, 0x05C3 },
{ 0x05F4, 0x05F4 },
{ 0x0609, 0x060A },
{ 0x066A, 0x066A },
{ 0x06D4, 0x06D4 },
{ 0x0701, 0x0704 },
{ 0x115F, 0x1160 },
{ 0x1735, 0x1735 },
{ 0x2000, 0x200B },
{ 0x200E, 0x2010 },
{ 0x2019, 0x2019 },
{ 0x2024, 0x2024 },
{ 0x2027, 0x202F },
{ 0x2039, 0x203A },
{ 0x2041, 0x2041 },
{ 0x2044, 0x2044 },
{ 0x2052, 0x2052 },
{ 0x205F, 0x205F },
{ 0x2153, 0x215F },
{ 0x2215, 0x2215 },
{ 0x2236, 0x2236 },
{ 0x23AE, 0x23AE },
{ 0x2571, 0x2571 },
{ 0x29F6, 0x29F6 },
{ 0x29F8, 0x29F8 },
{ 0x2AFB, 0x2AFB },
{ 0x2AFD, 0x2AFD },
{ 0x2FF0, 0x2FFB },
// Ideographic Space
{ 0x3000, 0x3000 },
{ 0x3002, 0x3002 },
{ 0x3014, 0x3015 },
{ 0x3033, 0x3033 },
{ 0x30A0, 0x30A0 },
{ 0x3164, 0x3164 },
{ 0x321D, 0x321E },
{ 0x33AE, 0x33AF },
{ 0x33C6, 0x33C6 },
{ 0x33DF, 0x33DF },
{ 0xFE14, 0xFE15 },
{ 0xFE3F, 0xFE3F },
{ 0xFE5D, 0xFE5E },
{ 0xFEFF, 0xFEFF },
{ 0xFF0E, 0xFF0F },
{ 0xFF61, 0xFF61 },
{ 0xFFA0, 0xFFA0 },
{ 0xFFF9, 0xFFFD },
|