]> Cypherpunks repositories - gostls13.git/commitdiff
update package unicode to Unicode 5.2
authorRob Pike <r@golang.org>
Wed, 2 Dec 2009 00:22:21 +0000 (16:22 -0800)
committerRob Pike <r@golang.org>
Wed, 2 Dec 2009 00:22:21 +0000 (16:22 -0800)
R=rsc
CC=golang-dev
https://golang.org/cl/163062

src/pkg/unicode/Makefile
src/pkg/unicode/maketables.go
src/pkg/unicode/script_test.go
src/pkg/unicode/tables.go

index 489467f0ec292aac3db3b7fd3c2276660d0ca8e8..ae9e3336bf2ee0235d27405888945b3663e6ee17 100644 (file)
@@ -20,6 +20,7 @@ tables:       maketables
        $(GC) maketables.go
        $(LD) -o maketables maketables.$O
        ./maketables --tables=all > tables.go
+       gofmt -w tables.go
        rm -f maketables
 
 testtables: maketables
index e376172b87bf9129801b356a6e98e5c220d90f53..c96c12eb80df44c89105a06daffeaa4a1d9cd19c 100644 (file)
@@ -32,7 +32,7 @@ func main() {
 
 var dataURL = flag.String("data", "", "full URL for UnicodeData.txt; defaults to --url/UnicodeData.txt")
 var url = flag.String("url",
-       "http://www.unicode.org/Public/5.1.0/ucd/",
+       "http://www.unicode.org/Public/5.2.0/ucd/",
        "URL of Unicode database directory")
 var tablelist = flag.String("tables",
        "all",
index 96896ca0b6290843a98f5c9f26237d345adc3531..316de2d25f8df47bdf91a987faa0d5f5d960fb32 100644 (file)
@@ -19,7 +19,9 @@ type T struct {
 var inTest = []T{
        T{0x06e2, "Arabic"},
        T{0x0567, "Armenian"},
+       T{0x10b20, "Avestan"},
        T{0x1b37, "Balinese"},
+       T{0xa6af, "Bamum"},
        T{0x09c2, "Bengali"},
        T{0x3115, "Bopomofo"},
        T{0x282d, "Braille"},
@@ -37,6 +39,7 @@ var inTest = []T{
        T{0xa663, "Cyrillic"},
        T{0x10430, "Deseret"},
        T{0x094a, "Devanagari"},
+       T{0x13001, "Egyptian_Hieroglyphs"},
        T{0x1271, "Ethiopic"},
        T{0x10fc, "Georgian"},
        T{0x2c40, "Glagolitic"},
@@ -49,7 +52,12 @@ var inTest = []T{
        T{0x1727, "Hanunoo"},
        T{0x05a0, "Hebrew"},
        T{0x3058, "Hiragana"},
+       T{0x10841, "Imperial_Aramaic"},
        T{0x20e6, "Inherited"},
+       T{0x10b70, "Inscriptional_Pahlavi"},
+       T{0x10b5a, "Inscriptional_Parthian"},
+       T{0xa9d0, "Javanese"},
+       T{0x1109f, "Kaithi"},
        T{0x0cbd, "Kannada"},
        T{0x30a6, "Katakana"},
        T{0xa928, "Kayah_Li"},
@@ -60,9 +68,11 @@ var inTest = []T{
        T{0x1c10, "Lepcha"},
        T{0x1930, "Limbu"},
        T{0x1003c, "Linear_B"},
+       T{0xa4e1, "Lisu"},
        T{0x10290, "Lycian"},
        T{0x10930, "Lydian"},
        T{0x0d42, "Malayalam"},
+       T{0xabd0, "Meetei_Mayek"},
        T{0x1822, "Mongolian"},
        T{0x104c, "Myanmar"},
        T{0x19c3, "New_Tai_Lue"},
@@ -71,12 +81,15 @@ var inTest = []T{
        T{0x1c6a, "Ol_Chiki"},
        T{0x10310, "Old_Italic"},
        T{0x103c9, "Old_Persian"},
+       T{0x10a6f, "Old_South_Arabian"},
+       T{0x10c20, "Old_Turkic"},
        T{0x0b3e, "Oriya"},
        T{0x10491, "Osmanya"},
        T{0xa860, "Phags_Pa"},
        T{0x10918, "Phoenician"},
        T{0xa949, "Rejang"},
        T{0x16c0, "Runic"},
+       T{0x081d, "Samaritan"},
        T{0xa892, "Saurashtra"},
        T{0x10463, "Shavian"},
        T{0x0dbd, "Sinhala"},
@@ -86,6 +99,8 @@ var inTest = []T{
        T{0x170f, "Tagalog"},
        T{0x176f, "Tagbanwa"},
        T{0x1972, "Tai_Le"},
+       T{0x1a62, "Tai_Tham"},
+       T{0xaadc, "Tai_Viet"},
        T{0x0bbf, "Tamil"},
        T{0x0c55, "Telugu"},
        T{0x07a7, "Thaana"},
index f99d6e43a9cd3cd9a7d557d07cf8e68da01ade03..4a4dbe02b5259f07cd2f0aa8398a2edd38b2e150 100644 (file)
@@ -1,11 +1,11 @@
 // Generated by running
-//     maketables --tables=all --data=http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
+//     maketables --tables=all --data=http://www.unicode.org/Public/5.2.0/ucd/UnicodeData.txt
 // DO NOT EDIT
 
 package unicode
 
 // Version is the Unicode edition from which the tables are derived.
-const Version = "5.1.0"
+const Version = "5.2.0"
 
 // Categories is the set of Unicode data tables.
 var Categories = map[string][]Range{
@@ -50,14 +50,17 @@ var _Lm = []Range{
        Range{0x0559, 0x0640, 231},
        Range{0x06e5, 0x06e6, 1},
        Range{0x07f4, 0x07f5, 1},
-       Range{0x07fa, 0x0971, 375},
-       Range{0x0e46, 0x0ec6, 128},
-       Range{0x10fc, 0x17d7, 1755},
-       Range{0x1843, 0x1c78, 1077},
+       Range{0x07fa, 0x081a, 32},
+       Range{0x0824, 0x0828, 4},
+       Range{0x0971, 0x0e46, 1237},
+       Range{0x0ec6, 0x10fc, 566},
+       Range{0x17d7, 0x1843, 108},
+       Range{0x1aa7, 0x1c78, 465},
        Range{0x1c79, 0x1c7d, 1},
        Range{0x1d2c, 0x1d61, 1},
        Range{0x1d78, 0x1d9b, 35},
        Range{0x1d9c, 0x1dbf, 1},
+       Range{0x2071, 0x207f, 14},
        Range{0x2090, 0x2094, 1},
        Range{0x2c7d, 0x2d6f, 242},
        Range{0x2e2f, 0x3005, 470},
@@ -65,12 +68,14 @@ var _Lm = []Range{
        Range{0x303b, 0x309d, 98},
        Range{0x309e, 0x30fc, 94},
        Range{0x30fd, 0x30fe, 1},
-       Range{0xa015, 0xa60c, 1527},
-       Range{0xa67f, 0xa717, 152},
-       Range{0xa718, 0xa71f, 1},
+       Range{0xa015, 0xa4f8, 1251},
+       Range{0xa4f9, 0xa4fd, 1},
+       Range{0xa60c, 0xa67f, 115},
+       Range{0xa717, 0xa71f, 1},
        Range{0xa770, 0xa788, 24},
-       Range{0xff70, 0xff9e, 46},
-       Range{0xff9f, 0xff9f, 1},
+       Range{0xa9cf, 0xaa70, 161},
+       Range{0xaadd, 0xff70, 21651},
+       Range{0xff9e, 0xff9f, 1},
 }
 
 var _Ll = []Range{
@@ -124,7 +129,7 @@ var _Ll = []Range{
        Range{0x0461, 0x0481, 2},
        Range{0x048b, 0x04bf, 2},
        Range{0x04c2, 0x04ce, 2},
-       Range{0x04cf, 0x0523, 2},
+       Range{0x04cf, 0x0525, 2},
        Range{0x0561, 0x0587, 1},
        Range{0x1d00, 0x1d2b, 1},
        Range{0x1d62, 0x1d77, 1},
@@ -153,7 +158,6 @@ var _Ll = []Range{
        Range{0x1fe0, 0x1fe7, 1},
        Range{0x1ff2, 0x1ff4, 1},
        Range{0x1ff6, 0x1ff7, 1},
-       Range{0x2071, 0x207f, 14},
        Range{0x210a, 0x210e, 4},
        Range{0x210f, 0x2113, 4},
        Range{0x212f, 0x2139, 5},
@@ -167,7 +171,8 @@ var _Ll = []Range{
        Range{0x2c74, 0x2c76, 2},
        Range{0x2c77, 0x2c7c, 1},
        Range{0x2c81, 0x2ce3, 2},
-       Range{0x2ce4, 0x2d00, 28},
+       Range{0x2ce4, 0x2cec, 8},
+       Range{0x2cee, 0x2d00, 18},
        Range{0x2d01, 0x2d25, 1},
        Range{0xa641, 0xa65f, 2},
        Range{0xa663, 0xa66d, 2},
@@ -225,8 +230,9 @@ var _Mc = []Range{
        Range{0x0903, 0x093e, 59},
        Range{0x093f, 0x0940, 1},
        Range{0x0949, 0x094c, 1},
-       Range{0x0982, 0x0983, 1},
-       Range{0x09be, 0x09c0, 1},
+       Range{0x094e, 0x0982, 52},
+       Range{0x0983, 0x09be, 59},
+       Range{0x09bf, 0x09c0, 1},
        Range{0x09c7, 0x09c8, 1},
        Range{0x09cb, 0x09cc, 1},
        Range{0x09d7, 0x0a03, 44},
@@ -271,8 +277,10 @@ var _Mc = []Range{
        Range{0x1067, 0x106d, 1},
        Range{0x1083, 0x1084, 1},
        Range{0x1087, 0x108c, 1},
-       Range{0x108f, 0x17b6, 1831},
-       Range{0x17be, 0x17c5, 1},
+       Range{0x108f, 0x109a, 11},
+       Range{0x109b, 0x109c, 1},
+       Range{0x17b6, 0x17be, 8},
+       Range{0x17bf, 0x17c5, 1},
        Range{0x17c7, 0x17c8, 1},
        Range{0x1923, 0x1926, 1},
        Range{0x1929, 0x192b, 1},
@@ -281,6 +289,10 @@ var _Mc = []Range{
        Range{0x19b0, 0x19c0, 1},
        Range{0x19c8, 0x19c9, 1},
        Range{0x1a19, 0x1a1b, 1},
+       Range{0x1a55, 0x1a57, 2},
+       Range{0x1a61, 0x1a63, 2},
+       Range{0x1a64, 0x1a6d, 9},
+       Range{0x1a6e, 0x1a72, 1},
        Range{0x1b04, 0x1b35, 49},
        Range{0x1b3b, 0x1b3d, 2},
        Range{0x1b3e, 0x1b41, 1},
@@ -290,16 +302,27 @@ var _Mc = []Range{
        Range{0x1baa, 0x1c24, 122},
        Range{0x1c25, 0x1c2b, 1},
        Range{0x1c34, 0x1c35, 1},
+       Range{0x1ce1, 0x1cf2, 17},
        Range{0xa823, 0xa824, 1},
        Range{0xa827, 0xa880, 89},
        Range{0xa881, 0xa8b4, 51},
        Range{0xa8b5, 0xa8c3, 1},
        Range{0xa952, 0xa953, 1},
+       Range{0xa983, 0xa9b4, 49},
+       Range{0xa9b5, 0xa9ba, 5},
+       Range{0xa9bb, 0xa9bd, 2},
+       Range{0xa9be, 0xa9c0, 1},
        Range{0xaa2f, 0xaa30, 1},
        Range{0xaa33, 0xaa34, 1},
-       Range{0xaa4d, 0x1d165, 75544},
-       Range{0x1d166, 0x1d16d, 7},
-       Range{0x1d16e, 0x1d172, 1},
+       Range{0xaa4d, 0xaa7b, 46},
+       Range{0xabe3, 0xabe4, 1},
+       Range{0xabe6, 0xabe7, 1},
+       Range{0xabe9, 0xabea, 1},
+       Range{0xabec, 0x11082, 25750},
+       Range{0x110b0, 0x110b2, 1},
+       Range{0x110b7, 0x110b8, 1},
+       Range{0x1d165, 0x1d166, 1},
+       Range{0x1d16d, 0x1d172, 1},
 }
 
 var _Mn = []Range{
@@ -320,11 +343,15 @@ var _Mn = []Range{
        Range{0x0731, 0x074a, 1},
        Range{0x07a6, 0x07b0, 1},
        Range{0x07eb, 0x07f3, 1},
-       Range{0x0901, 0x0902, 1},
+       Range{0x0816, 0x0819, 1},
+       Range{0x081b, 0x0823, 1},
+       Range{0x0825, 0x0827, 1},
+       Range{0x0829, 0x082d, 1},
+       Range{0x0900, 0x0902, 1},
        Range{0x093c, 0x0941, 5},
        Range{0x0942, 0x0948, 1},
        Range{0x094d, 0x0951, 4},
-       Range{0x0952, 0x0954, 1},
+       Range{0x0952, 0x0955, 1},
        Range{0x0962, 0x0963, 1},
        Range{0x0981, 0x09bc, 59},
        Range{0x09c1, 0x09c4, 1},
@@ -385,8 +412,8 @@ var _Mn = []Range{
        Range{0x1071, 0x1074, 1},
        Range{0x1082, 0x1085, 3},
        Range{0x1086, 0x108d, 7},
-       Range{0x135f, 0x1712, 947},
-       Range{0x1713, 0x1714, 1},
+       Range{0x109d, 0x135f, 706},
+       Range{0x1712, 0x1714, 1},
        Range{0x1732, 0x1734, 1},
        Range{0x1752, 0x1753, 1},
        Range{0x1772, 0x1773, 1},
@@ -401,7 +428,13 @@ var _Mn = []Range{
        Range{0x1932, 0x1939, 7},
        Range{0x193a, 0x193b, 1},
        Range{0x1a17, 0x1a18, 1},
-       Range{0x1b00, 0x1b03, 1},
+       Range{0x1a56, 0x1a58, 2},
+       Range{0x1a59, 0x1a5e, 1},
+       Range{0x1a60, 0x1a62, 2},
+       Range{0x1a65, 0x1a6c, 1},
+       Range{0x1a73, 0x1a7c, 1},
+       Range{0x1a7f, 0x1b00, 129},
+       Range{0x1b01, 0x1b03, 1},
        Range{0x1b34, 0x1b36, 2},
        Range{0x1b37, 0x1b3a, 1},
        Range{0x1b3c, 0x1b42, 6},
@@ -411,25 +444,42 @@ var _Mn = []Range{
        Range{0x1ba8, 0x1ba9, 1},
        Range{0x1c2c, 0x1c33, 1},
        Range{0x1c36, 0x1c37, 1},
-       Range{0x1dc0, 0x1de6, 1},
-       Range{0x1dfe, 0x1dff, 1},
+       Range{0x1cd0, 0x1cd2, 1},
+       Range{0x1cd4, 0x1ce0, 1},
+       Range{0x1ce2, 0x1ce8, 1},
+       Range{0x1ced, 0x1dc0, 211},
+       Range{0x1dc1, 0x1de6, 1},
+       Range{0x1dfd, 0x1dff, 1},
        Range{0x20d0, 0x20dc, 1},
        Range{0x20e1, 0x20e5, 4},
        Range{0x20e6, 0x20f0, 1},
+       Range{0x2cef, 0x2cf1, 1},
        Range{0x2de0, 0x2dff, 1},
        Range{0x302a, 0x302f, 1},
        Range{0x3099, 0x309a, 1},
        Range{0xa66f, 0xa67c, 13},
-       Range{0xa67d, 0xa802, 389},
+       Range{0xa67d, 0xa6f0, 115},
+       Range{0xa6f1, 0xa802, 273},
        Range{0xa806, 0xa80b, 5},
        Range{0xa825, 0xa826, 1},
-       Range{0xa8c4, 0xa926, 98},
-       Range{0xa927, 0xa92d, 1},
+       Range{0xa8c4, 0xa8e0, 28},
+       Range{0xa8e1, 0xa8f1, 1},
+       Range{0xa926, 0xa92d, 1},
        Range{0xa947, 0xa951, 1},
-       Range{0xaa29, 0xaa2e, 1},
+       Range{0xa980, 0xa982, 1},
+       Range{0xa9b3, 0xa9b6, 3},
+       Range{0xa9b7, 0xa9b9, 1},
+       Range{0xa9bc, 0xaa29, 109},
+       Range{0xaa2a, 0xaa2e, 1},
        Range{0xaa31, 0xaa32, 1},
        Range{0xaa35, 0xaa36, 1},
        Range{0xaa43, 0xaa4c, 9},
+       Range{0xaab0, 0xaab2, 2},
+       Range{0xaab3, 0xaab4, 1},
+       Range{0xaab7, 0xaab8, 1},
+       Range{0xaabe, 0xaabf, 1},
+       Range{0xaac1, 0xabe5, 292},
+       Range{0xabe8, 0xabed, 5},
        Range{0xfb1e, 0xfe00, 738},
        Range{0xfe01, 0xfe0f, 1},
        Range{0xfe20, 0xfe26, 1},
@@ -438,8 +488,11 @@ var _Mn = []Range{
        Range{0x10a05, 0x10a06, 1},
        Range{0x10a0c, 0x10a0f, 1},
        Range{0x10a38, 0x10a3a, 1},
-       Range{0x10a3f, 0x1d167, 50984},
-       Range{0x1d168, 0x1d169, 1},
+       Range{0x10a3f, 0x11080, 1601},
+       Range{0x11081, 0x110b3, 50},
+       Range{0x110b4, 0x110b6, 1},
+       Range{0x110b9, 0x110ba, 1},
+       Range{0x1d167, 0x1d169, 1},
        Range{0x1d17b, 0x1d182, 1},
        Range{0x1d185, 0x1d18b, 1},
        Range{0x1d1aa, 0x1d1ad, 1},
@@ -471,7 +524,7 @@ var letter = []Range{
        Range{0x038f, 0x03a1, 1},
        Range{0x03a3, 0x03f5, 1},
        Range{0x03f7, 0x0481, 1},
-       Range{0x048a, 0x0523, 1},
+       Range{0x048a, 0x0525, 1},
        Range{0x0531, 0x0556, 1},
        Range{0x0559, 0x0561, 8},
        Range{0x0562, 0x0587, 1},
@@ -490,12 +543,15 @@ var letter = []Range{
        Range{0x07b1, 0x07ca, 25},
        Range{0x07cb, 0x07ea, 1},
        Range{0x07f4, 0x07f5, 1},
-       Range{0x07fa, 0x0904, 266},
+       Range{0x07fa, 0x0800, 6},
+       Range{0x0801, 0x0815, 1},
+       Range{0x081a, 0x0824, 10},
+       Range{0x0828, 0x0904, 220},
        Range{0x0905, 0x0939, 1},
        Range{0x093d, 0x0950, 19},
        Range{0x0958, 0x0961, 1},
        Range{0x0971, 0x0972, 1},
-       Range{0x097b, 0x097f, 1},
+       Range{0x0979, 0x097f, 1},
        Range{0x0985, 0x098c, 1},
        Range{0x098f, 0x0990, 1},
        Range{0x0993, 0x09a8, 1},
@@ -604,10 +660,7 @@ var letter = []Range{
        Range{0x10a1, 0x10c5, 1},
        Range{0x10d0, 0x10fa, 1},
        Range{0x10fc, 0x1100, 4},
-       Range{0x1101, 0x1159, 1},
-       Range{0x115f, 0x11a2, 1},
-       Range{0x11a8, 0x11f9, 1},
-       Range{0x1200, 0x1248, 1},
+       Range{0x1101, 0x1248, 1},
        Range{0x124a, 0x124d, 1},
        Range{0x1250, 0x1256, 1},
        Range{0x1258, 0x125a, 2},
@@ -626,7 +679,7 @@ var letter = []Range{
        Range{0x1380, 0x138f, 1},
        Range{0x13a0, 0x13f4, 1},
        Range{0x1401, 0x166c, 1},
-       Range{0x166f, 0x1676, 1},
+       Range{0x166f, 0x167f, 1},
        Range{0x1681, 0x169a, 1},
        Range{0x16a0, 0x16ea, 1},
        Range{0x1700, 0x170c, 1},
@@ -639,20 +692,25 @@ var letter = []Range{
        Range{0x17d7, 0x17dc, 5},
        Range{0x1820, 0x1877, 1},
        Range{0x1880, 0x18a8, 1},
-       Range{0x18aa, 0x1900, 86},
-       Range{0x1901, 0x191c, 1},
+       Range{0x18aa, 0x18b0, 6},
+       Range{0x18b1, 0x18f5, 1},
+       Range{0x1900, 0x191c, 1},
        Range{0x1950, 0x196d, 1},
        Range{0x1970, 0x1974, 1},
-       Range{0x1980, 0x19a9, 1},
+       Range{0x1980, 0x19ab, 1},
        Range{0x19c1, 0x19c7, 1},
        Range{0x1a00, 0x1a16, 1},
-       Range{0x1b05, 0x1b33, 1},
+       Range{0x1a20, 0x1a54, 1},
+       Range{0x1aa7, 0x1b05, 94},
+       Range{0x1b06, 0x1b33, 1},
        Range{0x1b45, 0x1b4b, 1},
        Range{0x1b83, 0x1ba0, 1},
        Range{0x1bae, 0x1baf, 1},
        Range{0x1c00, 0x1c23, 1},
        Range{0x1c4d, 0x1c4f, 1},
        Range{0x1c5a, 0x1c7d, 1},
+       Range{0x1ce9, 0x1cec, 1},
+       Range{0x1cee, 0x1cf1, 1},
        Range{0x1d00, 0x1dbf, 1},
        Range{0x1e00, 0x1f15, 1},
        Range{0x1f18, 0x1f1d, 1},
@@ -686,9 +744,8 @@ var letter = []Range{
        Range{0x2184, 0x2c00, 2684},
        Range{0x2c01, 0x2c2e, 1},
        Range{0x2c30, 0x2c5e, 1},
-       Range{0x2c60, 0x2c6f, 1},
-       Range{0x2c71, 0x2c7d, 1},
-       Range{0x2c80, 0x2ce4, 1},
+       Range{0x2c60, 0x2ce4, 1},
+       Range{0x2ceb, 0x2cee, 1},
        Range{0x2d00, 0x2d25, 1},
        Range{0x2d30, 0x2d65, 1},
        Range{0x2d6f, 0x2d80, 17},
@@ -714,14 +771,16 @@ var letter = []Range{
        Range{0x31a0, 0x31b7, 1},
        Range{0x31f0, 0x31ff, 1},
        Range{0x3400, 0x4db5, 1},
-       Range{0x4e00, 0x9fc3, 1},
+       Range{0x4e00, 0x9fcb, 1},
        Range{0xa000, 0xa48c, 1},
+       Range{0xa4d0, 0xa4fd, 1},
        Range{0xa500, 0xa60c, 1},
        Range{0xa610, 0xa61f, 1},
        Range{0xa62a, 0xa62b, 1},
        Range{0xa640, 0xa65f, 1},
        Range{0xa662, 0xa66e, 1},
        Range{0xa67f, 0xa697, 1},
+       Range{0xa6a0, 0xa6e5, 1},
        Range{0xa717, 0xa71f, 1},
        Range{0xa722, 0xa788, 1},
        Range{0xa78b, 0xa78c, 1},
@@ -731,14 +790,30 @@ var letter = []Range{
        Range{0xa80c, 0xa822, 1},
        Range{0xa840, 0xa873, 1},
        Range{0xa882, 0xa8b3, 1},
-       Range{0xa90a, 0xa925, 1},
+       Range{0xa8f2, 0xa8f7, 1},
+       Range{0xa8fb, 0xa90a, 15},
+       Range{0xa90b, 0xa925, 1},
        Range{0xa930, 0xa946, 1},
-       Range{0xaa00, 0xaa28, 1},
+       Range{0xa960, 0xa97c, 1},
+       Range{0xa984, 0xa9b2, 1},
+       Range{0xa9cf, 0xaa00, 49},
+       Range{0xaa01, 0xaa28, 1},
        Range{0xaa40, 0xaa42, 1},
        Range{0xaa44, 0xaa4b, 1},
+       Range{0xaa60, 0xaa76, 1},
+       Range{0xaa7a, 0xaa80, 6},
+       Range{0xaa81, 0xaaaf, 1},
+       Range{0xaab1, 0xaab5, 4},
+       Range{0xaab6, 0xaab9, 3},
+       Range{0xaaba, 0xaabd, 1},
+       Range{0xaac0, 0xaac2, 2},
+       Range{0xaadb, 0xaadd, 1},
+       Range{0xabc0, 0xabe2, 1},
        Range{0xac00, 0xd7a3, 1},
+       Range{0xd7b0, 0xd7c6, 1},
+       Range{0xd7cb, 0xd7fb, 1},
        Range{0xf900, 0xfa2d, 1},
-       Range{0xfa30, 0xfa6a, 1},
+       Range{0xfa30, 0xfa6d, 1},
        Range{0xfa70, 0xfad9, 1},
        Range{0xfb00, 0xfb06, 1},
        Range{0xfb13, 0xfb17, 1},
@@ -784,13 +859,21 @@ var letter = []Range{
        Range{0x1080b, 0x10835, 1},
        Range{0x10837, 0x10838, 1},
        Range{0x1083c, 0x1083f, 3},
+       Range{0x10840, 0x10855, 1},
        Range{0x10900, 0x10915, 1},
        Range{0x10920, 0x10939, 1},
        Range{0x10a00, 0x10a10, 16},
        Range{0x10a11, 0x10a13, 1},
        Range{0x10a15, 0x10a17, 1},
        Range{0x10a19, 0x10a33, 1},
+       Range{0x10a60, 0x10a7c, 1},
+       Range{0x10b00, 0x10b35, 1},
+       Range{0x10b40, 0x10b55, 1},
+       Range{0x10b60, 0x10b72, 1},
+       Range{0x10c00, 0x10c48, 1},
+       Range{0x11083, 0x110af, 1},
        Range{0x12000, 0x1236e, 1},
+       Range{0x13000, 0x1342e, 1},
        Range{0x1d400, 0x1d454, 1},
        Range{0x1d456, 0x1d49c, 1},
        Range{0x1d49e, 0x1d49f, 1},
@@ -822,6 +905,7 @@ var letter = []Range{
        Range{0x1d7aa, 0x1d7c2, 1},
        Range{0x1d7c4, 0x1d7cb, 1},
        Range{0x20000, 0x2a6d6, 1},
+       Range{0x2a700, 0x2b734, 1},
        Range{0x2f800, 0x2fa1d, 1},
 }
 
@@ -858,7 +942,8 @@ var _Cf = []Range{
        Range{0x206a, 0x206f, 1},
        Range{0xfeff, 0xfff9, 250},
        Range{0xfffa, 0xfffb, 1},
-       Range{0x1d173, 0x1d17a, 1},
+       Range{0x110bd, 0x1d173, 49334},
+       Range{0x1d174, 0x1d17a, 1},
        Range{0xe0001, 0xe0020, 31},
        Range{0xe0021, 0xe007f, 1},
 }
@@ -890,6 +975,7 @@ var _Po = []Range{
        Range{0x06d4, 0x0700, 44},
        Range{0x0701, 0x070d, 1},
        Range{0x07f7, 0x07f9, 1},
+       Range{0x0830, 0x083e, 1},
        Range{0x0964, 0x0965, 1},
        Range{0x0970, 0x0df4, 1156},
        Range{0x0e4f, 0x0e5a, 11},
@@ -910,11 +996,14 @@ var _Po = []Range{
        Range{0x1944, 0x1945, 1},
        Range{0x19de, 0x19df, 1},
        Range{0x1a1e, 0x1a1f, 1},
+       Range{0x1aa0, 0x1aa6, 1},
+       Range{0x1aa8, 0x1aad, 1},
        Range{0x1b5a, 0x1b60, 1},
        Range{0x1c3b, 0x1c3f, 1},
        Range{0x1c7e, 0x1c7f, 1},
-       Range{0x2016, 0x2017, 1},
-       Range{0x2020, 0x2027, 1},
+       Range{0x1cd3, 0x2016, 835},
+       Range{0x2017, 0x2020, 9},
+       Range{0x2021, 0x2027, 1},
        Range{0x2030, 0x2038, 1},
        Range{0x203b, 0x203e, 1},
        Range{0x2041, 0x2043, 1},
@@ -931,17 +1020,24 @@ var _Po = []Range{
        Range{0x2e1b, 0x2e1e, 3},
        Range{0x2e1f, 0x2e2a, 11},
        Range{0x2e2b, 0x2e2e, 1},
-       Range{0x2e30, 0x3001, 465},
-       Range{0x3002, 0x3003, 1},
+       Range{0x2e30, 0x2e31, 1},
+       Range{0x3001, 0x3003, 1},
        Range{0x303d, 0x30fb, 190},
+       Range{0xa4fe, 0xa4ff, 1},
        Range{0xa60d, 0xa60f, 1},
        Range{0xa673, 0xa67e, 11},
+       Range{0xa6f2, 0xa6f7, 1},
        Range{0xa874, 0xa877, 1},
        Range{0xa8ce, 0xa8cf, 1},
+       Range{0xa8f8, 0xa8fa, 1},
        Range{0xa92e, 0xa92f, 1},
-       Range{0xa95f, 0xaa5c, 253},
-       Range{0xaa5d, 0xaa5f, 1},
-       Range{0xfe10, 0xfe16, 1},
+       Range{0xa95f, 0xa9c1, 98},
+       Range{0xa9c2, 0xa9cd, 1},
+       Range{0xa9de, 0xa9df, 1},
+       Range{0xaa5c, 0xaa5f, 1},
+       Range{0xaade, 0xaadf, 1},
+       Range{0xabeb, 0xfe10, 21029},
+       Range{0xfe11, 0xfe16, 1},
        Range{0xfe19, 0xfe30, 23},
        Range{0xfe45, 0xfe46, 1},
        Range{0xfe49, 0xfe4c, 1},
@@ -959,9 +1055,13 @@ var _Po = []Range{
        Range{0xff61, 0xff64, 3},
        Range{0xff65, 0x10100, 411},
        Range{0x10101, 0x1039f, 670},
-       Range{0x103d0, 0x1091f, 1359},
-       Range{0x1093f, 0x10a50, 273},
-       Range{0x10a51, 0x10a58, 1},
+       Range{0x103d0, 0x10857, 1159},
+       Range{0x1091f, 0x1093f, 32},
+       Range{0x10a50, 0x10a58, 1},
+       Range{0x10a7f, 0x10b39, 186},
+       Range{0x10b3a, 0x10b3f, 1},
+       Range{0x110bb, 0x110bc, 1},
+       Range{0x110be, 0x110c1, 1},
        Range{0x12470, 0x12473, 1},
 }
 
@@ -1008,8 +1108,9 @@ var _Pe = []Range{
 
 var _Pd = []Range{
        Range{0x002d, 0x058a, 1373},
-       Range{0x05be, 0x1806, 4680},
-       Range{0x2010, 0x2015, 1},
+       Range{0x05be, 0x1400, 3650},
+       Range{0x1806, 0x2010, 2058},
+       Range{0x2011, 0x2015, 1},
        Range{0x2e17, 0x2e1a, 3},
        Range{0x301c, 0x3030, 20},
        Range{0x30a0, 0xfe31, 52625},
@@ -1073,7 +1174,9 @@ var _Nd = []Range{
        Range{0x17e0, 0x17e9, 1},
        Range{0x1810, 0x1819, 1},
        Range{0x1946, 0x194f, 1},
-       Range{0x19d0, 0x19d9, 1},
+       Range{0x19d0, 0x19da, 1},
+       Range{0x1a80, 0x1a89, 1},
+       Range{0x1a90, 0x1a99, 1},
        Range{0x1b50, 0x1b59, 1},
        Range{0x1bb0, 0x1bb9, 1},
        Range{0x1c40, 0x1c49, 1},
@@ -1081,7 +1184,9 @@ var _Nd = []Range{
        Range{0xa620, 0xa629, 1},
        Range{0xa8d0, 0xa8d9, 1},
        Range{0xa900, 0xa909, 1},
+       Range{0xa9d0, 0xa9d9, 1},
        Range{0xaa50, 0xaa59, 1},
+       Range{0xabf0, 0xabf9, 1},
        Range{0xff10, 0xff19, 1},
        Range{0x104a0, 0x104a9, 1},
        Range{0x1d7ce, 0x1d7ff, 1},
@@ -1094,6 +1199,7 @@ var _Nl = []Range{
        Range{0x3007, 0x3021, 26},
        Range{0x3022, 0x3029, 1},
        Range{0x3038, 0x303a, 1},
+       Range{0xa6e6, 0xa6ef, 1},
        Range{0x10140, 0x10174, 1},
        Range{0x10341, 0x1034a, 9},
        Range{0x103d1, 0x103d5, 1},
@@ -1114,8 +1220,9 @@ var _No = []Range{
        Range{0x2070, 0x2074, 4},
        Range{0x2075, 0x2079, 1},
        Range{0x2080, 0x2089, 1},
-       Range{0x2153, 0x215f, 1},
-       Range{0x2460, 0x249b, 1},
+       Range{0x2150, 0x215f, 1},
+       Range{0x2189, 0x2460, 727},
+       Range{0x2461, 0x249b, 1},
        Range{0x24ea, 0x24ff, 1},
        Range{0x2776, 0x2793, 1},
        Range{0x2cfd, 0x3192, 1173},
@@ -1124,13 +1231,20 @@ var _No = []Range{
        Range{0x3251, 0x325f, 1},
        Range{0x3280, 0x3289, 1},
        Range{0x32b1, 0x32bf, 1},
+       Range{0xa830, 0xa835, 1},
        Range{0x10107, 0x10133, 1},
        Range{0x10175, 0x10178, 1},
        Range{0x1018a, 0x10320, 406},
        Range{0x10321, 0x10323, 1},
-       Range{0x10916, 0x10919, 1},
+       Range{0x10858, 0x1085f, 1},
+       Range{0x10916, 0x1091b, 1},
        Range{0x10a40, 0x10a47, 1},
+       Range{0x10a7d, 0x10a7e, 1},
+       Range{0x10b58, 0x10b5f, 1},
+       Range{0x10b78, 0x10b7f, 1},
+       Range{0x10e60, 0x10e7e, 1},
        Range{0x1d360, 0x1d371, 1},
+       Range{0x1f100, 0x1f10a, 1},
 }
 
 var _So = []Range{
@@ -1153,6 +1267,7 @@ var _So = []Range{
        Range{0x0fbe, 0x0fc5, 1},
        Range{0x0fc7, 0x0fcc, 1},
        Range{0x0fce, 0x0fcf, 1},
+       Range{0x0fd5, 0x0fd8, 1},
        Range{0x109e, 0x109f, 1},
        Range{0x1360, 0x1390, 48},
        Range{0x1391, 0x1399, 1},
@@ -1186,7 +1301,7 @@ var _So = []Range{
        Range{0x232b, 0x237b, 1},
        Range{0x237d, 0x239a, 1},
        Range{0x23b4, 0x23db, 1},
-       Range{0x23e2, 0x23e7, 1},
+       Range{0x23e2, 0x23e8, 1},
        Range{0x2400, 0x2426, 1},
        Range{0x2440, 0x244a, 1},
        Range{0x249c, 0x24e9, 1},
@@ -1194,17 +1309,17 @@ var _So = []Range{
        Range{0x25b8, 0x25c0, 1},
        Range{0x25c2, 0x25f7, 1},
        Range{0x2600, 0x266e, 1},
-       Range{0x2670, 0x269d, 1},
-       Range{0x26a0, 0x26bc, 1},
-       Range{0x26c0, 0x26c3, 1},
+       Range{0x2670, 0x26cd, 1},
+       Range{0x26cf, 0x26e1, 1},
+       Range{0x26e3, 0x26e8, 5},
+       Range{0x26e9, 0x26ff, 1},
        Range{0x2701, 0x2704, 1},
        Range{0x2706, 0x2709, 1},
        Range{0x270c, 0x2727, 1},
        Range{0x2729, 0x274b, 1},
        Range{0x274d, 0x274f, 2},
        Range{0x2750, 0x2752, 1},
-       Range{0x2756, 0x2758, 2},
-       Range{0x2759, 0x275e, 1},
+       Range{0x2756, 0x275e, 1},
        Range{0x2761, 0x2767, 1},
        Range{0x2794, 0x2798, 4},
        Range{0x2799, 0x27af, 1},
@@ -1212,7 +1327,7 @@ var _So = []Range{
        Range{0x2800, 0x28ff, 1},
        Range{0x2b00, 0x2b2f, 1},
        Range{0x2b45, 0x2b46, 1},
-       Range{0x2b50, 0x2b54, 1},
+       Range{0x2b50, 0x2b59, 1},
        Range{0x2ce5, 0x2cea, 1},
        Range{0x2e80, 0x2e99, 1},
        Range{0x2e9b, 0x2ef3, 1},
@@ -1226,15 +1341,17 @@ var _So = []Range{
        Range{0x3196, 0x319f, 1},
        Range{0x31c0, 0x31e3, 1},
        Range{0x3200, 0x321e, 1},
-       Range{0x322a, 0x3243, 1},
-       Range{0x3250, 0x3260, 16},
-       Range{0x3261, 0x327f, 1},
+       Range{0x322a, 0x3250, 1},
+       Range{0x3260, 0x327f, 1},
        Range{0x328a, 0x32b0, 1},
        Range{0x32c0, 0x32fe, 1},
        Range{0x3300, 0x33ff, 1},
        Range{0x4dc0, 0x4dff, 1},
        Range{0xa490, 0xa4c6, 1},
        Range{0xa828, 0xa82b, 1},
+       Range{0xa836, 0xa837, 1},
+       Range{0xa839, 0xaa77, 574},
+       Range{0xaa78, 0xaa79, 1},
        Range{0xfdfd, 0xffe4, 487},
        Range{0xffe8, 0xffed, 5},
        Range{0xffee, 0xfffc, 14},
@@ -1255,6 +1372,18 @@ var _So = []Range{
        Range{0x1d301, 0x1d356, 1},
        Range{0x1f000, 0x1f02b, 1},
        Range{0x1f030, 0x1f093, 1},
+       Range{0x1f110, 0x1f12e, 1},
+       Range{0x1f131, 0x1f13d, 12},
+       Range{0x1f13f, 0x1f142, 3},
+       Range{0x1f146, 0x1f14a, 4},
+       Range{0x1f14b, 0x1f14e, 1},
+       Range{0x1f157, 0x1f15f, 8},
+       Range{0x1f179, 0x1f17b, 2},
+       Range{0x1f17c, 0x1f17f, 3},
+       Range{0x1f18a, 0x1f18d, 1},
+       Range{0x1f190, 0x1f200, 112},
+       Range{0x1f210, 0x1f231, 1},
+       Range{0x1f240, 0x1f248, 1},
 }
 
 var _Sm = []Range{
@@ -1338,14 +1467,14 @@ var _Sc = []Range{
        Range{0x0024, 0x00a2, 126},
        Range{0x00a3, 0x00a5, 1},
        Range{0x060b, 0x09f2, 999},
-       Range{0x09f3, 0x0af1, 254},
-       Range{0x0bf9, 0x0e3f, 582},
-       Range{0x17db, 0x20a0, 2245},
-       Range{0x20a1, 0x20b5, 1},
-       Range{0xfdfc, 0xfe69, 109},
-       Range{0xff04, 0xffe0, 220},
-       Range{0xffe1, 0xffe5, 4},
-       Range{0xffe6, 0xffe6, 1},
+       Range{0x09f3, 0x09fb, 8},
+       Range{0x0af1, 0x0bf9, 264},
+       Range{0x0e3f, 0x17db, 2460},
+       Range{0x20a0, 0x20b8, 1},
+       Range{0xa838, 0xfdfc, 21956},
+       Range{0xfe69, 0xff04, 155},
+       Range{0xffe0, 0xffe1, 1},
+       Range{0xffe5, 0xffe6, 1},
 }
 
 var _Lu = []Range{
@@ -1399,7 +1528,7 @@ var _Lu = []Range{
        Range{0x0460, 0x0480, 2},
        Range{0x048a, 0x04c0, 2},
        Range{0x04c1, 0x04cd, 2},
-       Range{0x04d0, 0x0522, 2},
+       Range{0x04d0, 0x0524, 2},
        Range{0x0531, 0x0556, 1},
        Range{0x10a0, 0x10c5, 1},
        Range{0x1e00, 0x1e94, 2},
@@ -1430,9 +1559,11 @@ var _Lu = []Range{
        Range{0x2c60, 0x2c62, 2},
        Range{0x2c63, 0x2c64, 1},
        Range{0x2c67, 0x2c6d, 2},
-       Range{0x2c6e, 0x2c6f, 1},
+       Range{0x2c6e, 0x2c70, 1},
        Range{0x2c72, 0x2c75, 3},
-       Range{0x2c80, 0x2ce2, 2},
+       Range{0x2c7e, 0x2c80, 1},
+       Range{0x2c82, 0x2ce2, 2},
+       Range{0x2ceb, 0x2ced, 2},
        Range{0xa640, 0xa65e, 2},
        Range{0xa662, 0xa66c, 2},
        Range{0xa680, 0xa696, 2},
@@ -1503,11 +1634,12 @@ var _Lo = []Range{
        Range{0x074d, 0x07a5, 1},
        Range{0x07b1, 0x07ca, 25},
        Range{0x07cb, 0x07ea, 1},
+       Range{0x0800, 0x0815, 1},
        Range{0x0904, 0x0939, 1},
        Range{0x093d, 0x0950, 19},
        Range{0x0958, 0x0961, 1},
-       Range{0x0972, 0x097b, 9},
-       Range{0x097c, 0x097f, 1},
+       Range{0x0972, 0x0979, 7},
+       Range{0x097a, 0x097f, 1},
        Range{0x0985, 0x098c, 1},
        Range{0x098f, 0x0990, 1},
        Range{0x0993, 0x09a8, 1},
@@ -1614,10 +1746,7 @@ var _Lo = []Range{
        Range{0x1075, 0x1081, 1},
        Range{0x108e, 0x10d0, 66},
        Range{0x10d1, 0x10fa, 1},
-       Range{0x1100, 0x1159, 1},
-       Range{0x115f, 0x11a2, 1},
-       Range{0x11a8, 0x11f9, 1},
-       Range{0x1200, 0x1248, 1},
+       Range{0x1100, 0x1248, 1},
        Range{0x124a, 0x124d, 1},
        Range{0x1250, 0x1256, 1},
        Range{0x1258, 0x125a, 2},
@@ -1636,7 +1765,7 @@ var _Lo = []Range{
        Range{0x1380, 0x138f, 1},
        Range{0x13a0, 0x13f4, 1},
        Range{0x1401, 0x166c, 1},
-       Range{0x166f, 0x1676, 1},
+       Range{0x166f, 0x167f, 1},
        Range{0x1681, 0x169a, 1},
        Range{0x16a0, 0x16ea, 1},
        Range{0x1700, 0x170c, 1},
@@ -1650,13 +1779,15 @@ var _Lo = []Range{
        Range{0x1821, 0x1842, 1},
        Range{0x1844, 0x1877, 1},
        Range{0x1880, 0x18a8, 1},
-       Range{0x18aa, 0x1900, 86},
-       Range{0x1901, 0x191c, 1},
+       Range{0x18aa, 0x18b0, 6},
+       Range{0x18b1, 0x18f5, 1},
+       Range{0x1900, 0x191c, 1},
        Range{0x1950, 0x196d, 1},
        Range{0x1970, 0x1974, 1},
-       Range{0x1980, 0x19a9, 1},
+       Range{0x1980, 0x19ab, 1},
        Range{0x19c1, 0x19c7, 1},
        Range{0x1a00, 0x1a16, 1},
+       Range{0x1a20, 0x1a54, 1},
        Range{0x1b05, 0x1b33, 1},
        Range{0x1b45, 0x1b4b, 1},
        Range{0x1b83, 0x1ba0, 1},
@@ -1664,6 +1795,8 @@ var _Lo = []Range{
        Range{0x1c00, 0x1c23, 1},
        Range{0x1c4d, 0x1c4f, 1},
        Range{0x1c5a, 0x1c77, 1},
+       Range{0x1ce9, 0x1cec, 1},
+       Range{0x1cee, 0x1cf1, 1},
        Range{0x2135, 0x2138, 1},
        Range{0x2d30, 0x2d65, 1},
        Range{0x2d80, 0x2d96, 1},
@@ -1685,27 +1818,45 @@ var _Lo = []Range{
        Range{0x31a0, 0x31b7, 1},
        Range{0x31f0, 0x31ff, 1},
        Range{0x3400, 0x4db5, 1},
-       Range{0x4e00, 0x9fc3, 1},
+       Range{0x4e00, 0x9fcb, 1},
        Range{0xa000, 0xa014, 1},
        Range{0xa016, 0xa48c, 1},
+       Range{0xa4d0, 0xa4f7, 1},
        Range{0xa500, 0xa60b, 1},
        Range{0xa610, 0xa61f, 1},
        Range{0xa62a, 0xa62b, 1},
-       Range{0xa66e, 0xa7fb, 397},
-       Range{0xa7fc, 0xa801, 1},
+       Range{0xa66e, 0xa6a0, 50},
+       Range{0xa6a1, 0xa6e5, 1},
+       Range{0xa7fb, 0xa801, 1},
        Range{0xa803, 0xa805, 1},
        Range{0xa807, 0xa80a, 1},
        Range{0xa80c, 0xa822, 1},
        Range{0xa840, 0xa873, 1},
        Range{0xa882, 0xa8b3, 1},
-       Range{0xa90a, 0xa925, 1},
+       Range{0xa8f2, 0xa8f7, 1},
+       Range{0xa8fb, 0xa90a, 15},
+       Range{0xa90b, 0xa925, 1},
        Range{0xa930, 0xa946, 1},
+       Range{0xa960, 0xa97c, 1},
+       Range{0xa984, 0xa9b2, 1},
        Range{0xaa00, 0xaa28, 1},
        Range{0xaa40, 0xaa42, 1},
        Range{0xaa44, 0xaa4b, 1},
+       Range{0xaa60, 0xaa6f, 1},
+       Range{0xaa71, 0xaa76, 1},
+       Range{0xaa7a, 0xaa80, 6},
+       Range{0xaa81, 0xaaaf, 1},
+       Range{0xaab1, 0xaab5, 4},
+       Range{0xaab6, 0xaab9, 3},
+       Range{0xaaba, 0xaabd, 1},
+       Range{0xaac0, 0xaac2, 2},
+       Range{0xaadb, 0xaadc, 1},
+       Range{0xabc0, 0xabe2, 1},
        Range{0xac00, 0xd7a3, 1},
+       Range{0xd7b0, 0xd7c6, 1},
+       Range{0xd7cb, 0xd7fb, 1},
        Range{0xf900, 0xfa2d, 1},
-       Range{0xfa30, 0xfa6a, 1},
+       Range{0xfa30, 0xfa6d, 1},
        Range{0xfa70, 0xfad9, 1},
        Range{0xfb1d, 0xfb1f, 2},
        Range{0xfb20, 0xfb28, 1},
@@ -1749,14 +1900,23 @@ var _Lo = []Range{
        Range{0x1080b, 0x10835, 1},
        Range{0x10837, 0x10838, 1},
        Range{0x1083c, 0x1083f, 3},
+       Range{0x10840, 0x10855, 1},
        Range{0x10900, 0x10915, 1},
        Range{0x10920, 0x10939, 1},
        Range{0x10a00, 0x10a10, 16},
        Range{0x10a11, 0x10a13, 1},
        Range{0x10a15, 0x10a17, 1},
        Range{0x10a19, 0x10a33, 1},
+       Range{0x10a60, 0x10a7c, 1},
+       Range{0x10b00, 0x10b35, 1},
+       Range{0x10b40, 0x10b55, 1},
+       Range{0x10b60, 0x10b72, 1},
+       Range{0x10c00, 0x10c48, 1},
+       Range{0x11083, 0x110af, 1},
        Range{0x12000, 0x1236e, 1},
+       Range{0x13000, 0x1342e, 1},
        Range{0x20000, 0x2a6d6, 1},
+       Range{0x2a700, 0x2b734, 1},
        Range{0x2f800, 0x2fa1d, 1},
 }
 
@@ -1798,7 +1958,7 @@ var (
 )
 
 // Generated by running
-//     maketables --scripts=all --url=http://www.unicode.org/Public/5.1.0/ucd/
+//     maketables --scripts=all --url=http://www.unicode.org/Public/5.2.0/ucd/
 // DO NOT EDIT
 
 // Scripts is the set of Unicode script tables.
@@ -1806,18 +1966,25 @@ var Scripts = map[string][]Range{
        "Katakana": Katakana,
        "Malayalam": Malayalam,
        "Phags_Pa": Phags_Pa,
+       "Inscriptional_Parthian": Inscriptional_Parthian,
        "Latin": Latin,
+       "Inscriptional_Pahlavi": Inscriptional_Pahlavi,
        "Osmanya": Osmanya,
        "Khmer": Khmer,
        "Inherited": Inherited,
        "Telugu": Telugu,
+       "Samaritan": Samaritan,
        "Bopomofo": Bopomofo,
+       "Imperial_Aramaic": Imperial_Aramaic,
+       "Kaithi": Kaithi,
+       "Old_South_Arabian": Old_South_Arabian,
        "Kayah_Li": Kayah_Li,
        "New_Tai_Lue": New_Tai_Lue,
        "Tai_Le": Tai_Le,
        "Kharoshthi": Kharoshthi,
        "Common": Common,
        "Kannada": Kannada,
+       "Old_Turkic": Old_Turkic,
        "Tamil": Tamil,
        "Tagalog": Tagalog,
        "Arabic": Arabic,
@@ -1827,6 +1994,8 @@ var Scripts = map[string][]Range{
        "Coptic": Coptic,
        "Hiragana": Hiragana,
        "Limbu": Limbu,
+       "Egyptian_Hieroglyphs": Egyptian_Hieroglyphs,
+       "Avestan": Avestan,
        "Myanmar": Myanmar,
        "Armenian": Armenian,
        "Sinhala": Sinhala,
@@ -1834,26 +2003,31 @@ var Scripts = map[string][]Range{
        "Greek": Greek,
        "Cham": Cham,
        "Hebrew": Hebrew,
+       "Meetei_Mayek": Meetei_Mayek,
        "Saurashtra": Saurashtra,
        "Hangul": Hangul,
        "Runic": Runic,
        "Deseret": Deseret,
+       "Lisu": Lisu,
        "Sundanese": Sundanese,
        "Glagolitic": Glagolitic,
        "Oriya": Oriya,
        "Buhid": Buhid,
        "Ethiopic": Ethiopic,
+       "Javanese": Javanese,
        "Syloti_Nagri": Syloti_Nagri,
        "Vai": Vai,
        "Cherokee": Cherokee,
        "Ogham": Ogham,
        "Syriac": Syriac,
        "Gurmukhi": Gurmukhi,
+       "Tai_Tham": Tai_Tham,
        "Ol_Chiki": Ol_Chiki,
        "Mongolian": Mongolian,
        "Hanunoo": Hanunoo,
        "Cypriot": Cypriot,
        "Buginese": Buginese,
+       "Bamum": Bamum,
        "Lepcha": Lepcha,
        "Thaana": Thaana,
        "Old_Persian": Old_Persian,
@@ -1867,6 +2041,7 @@ var Scripts = map[string][]Range{
        "Lao": Lao,
        "Linear_B": Linear_B,
        "Old_Italic": Old_Italic,
+       "Tai_Viet": Tai_Viet,
        "Devanagari": Devanagari,
        "Lydian": Lydian,
        "Tifinagh": Tifinagh,
@@ -1911,6 +2086,11 @@ var _Phags_Pa = []Range{
        Range{0xa840, 0xa877, 1},
 }
 
+var _Inscriptional_Parthian = []Range{
+       Range{0x10b40, 0x10b55, 1},
+       Range{0x10b58, 0x10b5f, 1},
+}
+
 var _Latin = []Range{
        Range{0x0041, 0x005a, 1},
        Range{0x0061, 0x007a, 1},
@@ -1933,8 +2113,7 @@ var _Latin = []Range{
        Range{0x2132, 0x2132, 1},
        Range{0x214e, 0x214e, 1},
        Range{0x2160, 0x2188, 1},
-       Range{0x2c60, 0x2c6f, 1},
-       Range{0x2c71, 0x2c7d, 1},
+       Range{0x2c60, 0x2c7f, 1},
        Range{0xa722, 0xa787, 1},
        Range{0xa78b, 0xa78c, 1},
        Range{0xa7fb, 0xa7ff, 1},
@@ -1943,6 +2122,11 @@ var _Latin = []Range{
        Range{0xff41, 0xff5a, 1},
 }
 
+var _Inscriptional_Pahlavi = []Range{
+       Range{0x10b60, 0x10b72, 1},
+       Range{0x10b78, 0x10b7f, 1},
+}
+
 var _Osmanya = []Range{
        Range{0x10480, 0x1049d, 1},
        Range{0x104a0, 0x104a9, 1},
@@ -1957,11 +2141,16 @@ var _Khmer = []Range{
 
 var _Inherited = []Range{
        Range{0x0300, 0x036f, 1},
+       Range{0x0485, 0x0486, 1},
        Range{0x064b, 0x0655, 1},
        Range{0x0670, 0x0670, 1},
        Range{0x0951, 0x0952, 1},
+       Range{0x1cd0, 0x1cd2, 1},
+       Range{0x1cd4, 0x1ce0, 1},
+       Range{0x1ce2, 0x1ce8, 1},
+       Range{0x1ced, 0x1ced, 1},
        Range{0x1dc0, 0x1de6, 1},
-       Range{0x1dfe, 0x1dff, 1},
+       Range{0x1dfd, 0x1dff, 1},
        Range{0x200c, 0x200d, 1},
        Range{0x20d0, 0x20f0, 1},
        Range{0x302a, 0x302f, 1},
@@ -1993,19 +2182,37 @@ var _Telugu = []Range{
        Range{0x0c78, 0x0c7f, 1},
 }
 
+var _Samaritan = []Range{
+       Range{0x0800, 0x082d, 1},
+       Range{0x0830, 0x083e, 1},
+}
+
 var _Bopomofo = []Range{
        Range{0x3105, 0x312d, 1},
        Range{0x31a0, 0x31b7, 1},
 }
 
+var _Imperial_Aramaic = []Range{
+       Range{0x10840, 0x10855, 1},
+       Range{0x10857, 0x1085f, 1},
+}
+
+var _Kaithi = []Range{
+       Range{0x11080, 0x110c1, 1},
+}
+
+var _Old_South_Arabian = []Range{
+       Range{0x10a60, 0x10a7f, 1},
+}
+
 var _Kayah_Li = []Range{
        Range{0xa900, 0xa92f, 1},
 }
 
 var _New_Tai_Lue = []Range{
-       Range{0x1980, 0x19a9, 1},
+       Range{0x1980, 0x19ab, 1},
        Range{0x19b0, 0x19c9, 1},
-       Range{0x19d0, 0x19d9, 1},
+       Range{0x19d0, 0x19da, 1},
        Range{0x19de, 0x19df, 1},
 }
 
@@ -2051,37 +2258,42 @@ var _Common = []Range{
        Range{0x0970, 0x0970, 1},
        Range{0x0cf1, 0x0cf2, 1},
        Range{0x0e3f, 0x0e3f, 1},
+       Range{0x0fd5, 0x0fd8, 1},
        Range{0x10fb, 0x10fb, 1},
        Range{0x16eb, 0x16ed, 1},
        Range{0x1735, 0x1736, 1},
        Range{0x1802, 0x1803, 1},
        Range{0x1805, 0x1805, 1},
+       Range{0x1cd3, 0x1cd3, 1},
+       Range{0x1ce1, 0x1ce1, 1},
+       Range{0x1ce9, 0x1cec, 1},
+       Range{0x1cee, 0x1cf2, 1},
        Range{0x2000, 0x200b, 1},
        Range{0x200e, 0x2064, 1},
        Range{0x206a, 0x2070, 1},
        Range{0x2074, 0x207e, 1},
        Range{0x2080, 0x208e, 1},
-       Range{0x20a0, 0x20b5, 1},
+       Range{0x20a0, 0x20b8, 1},
        Range{0x2100, 0x2125, 1},
        Range{0x2127, 0x2129, 1},
        Range{0x212c, 0x2131, 1},
        Range{0x2133, 0x214d, 1},
-       Range{0x214f, 0x214f, 1},
-       Range{0x2153, 0x215f, 1},
-       Range{0x2190, 0x23e7, 1},
+       Range{0x214f, 0x215f, 1},
+       Range{0x2189, 0x2189, 1},
+       Range{0x2190, 0x23e8, 1},
        Range{0x2400, 0x2426, 1},
        Range{0x2440, 0x244a, 1},
-       Range{0x2460, 0x269d, 1},
-       Range{0x26a0, 0x26bc, 1},
-       Range{0x26c0, 0x26c3, 1},
+       Range{0x2460, 0x26cd, 1},
+       Range{0x26cf, 0x26e1, 1},
+       Range{0x26e3, 0x26e3, 1},
+       Range{0x26e8, 0x26ff, 1},
        Range{0x2701, 0x2704, 1},
        Range{0x2706, 0x2709, 1},
        Range{0x270c, 0x2727, 1},
        Range{0x2729, 0x274b, 1},
        Range{0x274d, 0x274d, 1},
        Range{0x274f, 0x2752, 1},
-       Range{0x2756, 0x2756, 1},
-       Range{0x2758, 0x275e, 1},
+       Range{0x2756, 0x275e, 1},
        Range{0x2761, 0x2794, 1},
        Range{0x2798, 0x27af, 1},
        Range{0x27b1, 0x27be, 1},
@@ -2089,8 +2301,8 @@ var _Common = []Range{
        Range{0x27cc, 0x27cc, 1},
        Range{0x27d0, 0x27ff, 1},
        Range{0x2900, 0x2b4c, 1},
-       Range{0x2b50, 0x2b54, 1},
-       Range{0x2e00, 0x2e30, 1},
+       Range{0x2b50, 0x2b59, 1},
+       Range{0x2e00, 0x2e31, 1},
        Range{0x2ff0, 0x2ffb, 1},
        Range{0x3000, 0x3004, 1},
        Range{0x3006, 0x3006, 1},
@@ -2102,13 +2314,13 @@ var _Common = []Range{
        Range{0x30fb, 0x30fc, 1},
        Range{0x3190, 0x319f, 1},
        Range{0x31c0, 0x31e3, 1},
-       Range{0x3220, 0x3243, 1},
-       Range{0x3250, 0x325f, 1},
+       Range{0x3220, 0x325f, 1},
        Range{0x327f, 0x32cf, 1},
        Range{0x3358, 0x33ff, 1},
        Range{0x4dc0, 0x4dff, 1},
        Range{0xa700, 0xa721, 1},
        Range{0xa788, 0xa78a, 1},
+       Range{0xa830, 0xa839, 1},
        Range{0xfd3e, 0xfd3f, 1},
        Range{0xfdfd, 0xfdfd, 1},
        Range{0xfe10, 0xfe19, 1},
@@ -2161,6 +2373,23 @@ var _Common = []Range{
        Range{0x1d7ce, 0x1d7ff, 1},
        Range{0x1f000, 0x1f02b, 1},
        Range{0x1f030, 0x1f093, 1},
+       Range{0x1f100, 0x1f10a, 1},
+       Range{0x1f110, 0x1f12e, 1},
+       Range{0x1f131, 0x1f131, 1},
+       Range{0x1f13d, 0x1f13d, 1},
+       Range{0x1f13f, 0x1f13f, 1},
+       Range{0x1f142, 0x1f142, 1},
+       Range{0x1f146, 0x1f146, 1},
+       Range{0x1f14a, 0x1f14e, 1},
+       Range{0x1f157, 0x1f157, 1},
+       Range{0x1f15f, 0x1f15f, 1},
+       Range{0x1f179, 0x1f179, 1},
+       Range{0x1f17b, 0x1f17c, 1},
+       Range{0x1f17f, 0x1f17f, 1},
+       Range{0x1f18a, 0x1f18d, 1},
+       Range{0x1f190, 0x1f190, 1},
+       Range{0x1f210, 0x1f231, 1},
+       Range{0x1f240, 0x1f248, 1},
        Range{0xe0001, 0xe0001, 1},
        Range{0xe0020, 0xe007f, 1},
 }
@@ -2181,6 +2410,10 @@ var _Kannada = []Range{
        Range{0x0ce6, 0x0cef, 1},
 }
 
+var _Old_Turkic = []Range{
+       Range{0x10c00, 0x10c48, 1},
+}
+
 var _Tamil = []Range{
        Range{0x0b82, 0x0b83, 1},
        Range{0x0b85, 0x0b8a, 1},
@@ -2223,6 +2456,7 @@ var _Arabic = []Range{
        Range{0xfdf0, 0xfdfc, 1},
        Range{0xfe70, 0xfe74, 1},
        Range{0xfe76, 0xfefc, 1},
+       Range{0x10e60, 0x10e7e, 1},
 }
 
 var _Tagbanwa = []Range{
@@ -2232,7 +2466,8 @@ var _Tagbanwa = []Range{
 }
 
 var _Canadian_Aboriginal = []Range{
-       Range{0x1401, 0x1676, 1},
+       Range{0x1400, 0x167f, 1},
+       Range{0x18b0, 0x18f5, 1},
 }
 
 var _Tibetan = []Range{
@@ -2247,13 +2482,14 @@ var _Tibetan = []Range{
 
 var _Coptic = []Range{
        Range{0x03e2, 0x03ef, 1},
-       Range{0x2c80, 0x2cea, 1},
+       Range{0x2c80, 0x2cf1, 1},
        Range{0x2cf9, 0x2cff, 1},
 }
 
 var _Hiragana = []Range{
        Range{0x3041, 0x3096, 1},
        Range{0x309d, 0x309f, 1},
+       Range{0x1f200, 0x1f200, 1},
 }
 
 var _Limbu = []Range{
@@ -2264,9 +2500,18 @@ var _Limbu = []Range{
        Range{0x1944, 0x194f, 1},
 }
 
+var _Egyptian_Hieroglyphs = []Range{
+       Range{0x13000, 0x1342e, 1},
+}
+
+var _Avestan = []Range{
+       Range{0x10b00, 0x10b35, 1},
+       Range{0x10b39, 0x10b3f, 1},
+}
+
 var _Myanmar = []Range{
-       Range{0x1000, 0x1099, 1},
-       Range{0x109e, 0x109f, 1},
+       Range{0x1000, 0x109f, 1},
+       Range{0xaa60, 0xaa7b, 1},
 }
 
 var _Armenian = []Range{
@@ -2305,7 +2550,7 @@ var _Bengali = []Range{
        Range{0x09d7, 0x09d7, 1},
        Range{0x09dc, 0x09dd, 1},
        Range{0x09df, 0x09e3, 1},
-       Range{0x09e6, 0x09fa, 1},
+       Range{0x09e6, 0x09fb, 1},
 }
 
 var _Greek = []Range{
@@ -2363,19 +2608,25 @@ var _Hebrew = []Range{
        Range{0xfb46, 0xfb4f, 1},
 }
 
+var _Meetei_Mayek = []Range{
+       Range{0xabc0, 0xabed, 1},
+       Range{0xabf0, 0xabf9, 1},
+}
+
 var _Saurashtra = []Range{
        Range{0xa880, 0xa8c4, 1},
        Range{0xa8ce, 0xa8d9, 1},
 }
 
 var _Hangul = []Range{
-       Range{0x1100, 0x1159, 1},
-       Range{0x115f, 0x11a2, 1},
-       Range{0x11a8, 0x11f9, 1},
+       Range{0x1100, 0x11ff, 1},
        Range{0x3131, 0x318e, 1},
        Range{0x3200, 0x321e, 1},
        Range{0x3260, 0x327e, 1},
+       Range{0xa960, 0xa97c, 1},
        Range{0xac00, 0xd7a3, 1},
+       Range{0xd7b0, 0xd7c6, 1},
+       Range{0xd7cb, 0xd7fb, 1},
        Range{0xffa0, 0xffbe, 1},
        Range{0xffc2, 0xffc7, 1},
        Range{0xffca, 0xffcf, 1},
@@ -2392,6 +2643,10 @@ var _Deseret = []Range{
        Range{0x10400, 0x1044f, 1},
 }
 
+var _Lisu = []Range{
+       Range{0xa4d0, 0xa4ff, 1},
+}
+
 var _Sundanese = []Range{
        Range{0x1b80, 0x1baa, 1},
        Range{0x1bae, 0x1bb9, 1},
@@ -2453,6 +2708,12 @@ var _Ethiopic = []Range{
        Range{0x2dd8, 0x2dde, 1},
 }
 
+var _Javanese = []Range{
+       Range{0xa980, 0xa9cd, 1},
+       Range{0xa9cf, 0xa9d9, 1},
+       Range{0xa9de, 0xa9df, 1},
+}
+
 var _Syloti_Nagri = []Range{
        Range{0xa800, 0xa82b, 1},
 }
@@ -2494,6 +2755,14 @@ var _Gurmukhi = []Range{
        Range{0x0a66, 0x0a75, 1},
 }
 
+var _Tai_Tham = []Range{
+       Range{0x1a20, 0x1a5e, 1},
+       Range{0x1a60, 0x1a7c, 1},
+       Range{0x1a7f, 0x1a89, 1},
+       Range{0x1a90, 0x1a99, 1},
+       Range{0x1aa0, 0x1aad, 1},
+}
+
 var _Ol_Chiki = []Range{
        Range{0x1c50, 0x1c7f, 1},
 }
@@ -2525,6 +2794,10 @@ var _Buginese = []Range{
        Range{0x1a1e, 0x1a1f, 1},
 }
 
+var _Bamum = []Range{
+       Range{0xa6a0, 0xa6f7, 1},
+}
+
 var _Lepcha = []Range{
        Range{0x1c00, 0x1c37, 1},
        Range{0x1c3b, 0x1c49, 1},
@@ -2611,15 +2884,21 @@ var _Old_Italic = []Range{
        Range{0x10320, 0x10323, 1},
 }
 
+var _Tai_Viet = []Range{
+       Range{0xaa80, 0xaac2, 1},
+       Range{0xaadb, 0xaadf, 1},
+}
+
 var _Devanagari = []Range{
-       Range{0x0901, 0x0939, 1},
-       Range{0x093c, 0x094d, 1},
+       Range{0x0900, 0x0939, 1},
+       Range{0x093c, 0x094e, 1},
        Range{0x0950, 0x0950, 1},
-       Range{0x0953, 0x0954, 1},
+       Range{0x0953, 0x0955, 1},
        Range{0x0958, 0x0963, 1},
        Range{0x0966, 0x096f, 1},
        Range{0x0971, 0x0972, 1},
-       Range{0x097b, 0x097f, 1},
+       Range{0x0979, 0x097f, 1},
+       Range{0xa8e0, 0xa8fb, 1},
 }
 
 var _Lydian = []Range{
@@ -2643,7 +2922,8 @@ var _Thai = []Range{
 }
 
 var _Cyrillic = []Range{
-       Range{0x0400, 0x0523, 1},
+       Range{0x0400, 0x0484, 1},
+       Range{0x0487, 0x0525, 1},
        Range{0x1d2b, 0x1d2b, 1},
        Range{0x1d78, 0x1d78, 1},
        Range{0x2de0, 0x2dff, 1},
@@ -2674,7 +2954,7 @@ var _Carian = []Range{
 }
 
 var _Phoenician = []Range{
-       Range{0x10900, 0x10919, 1},
+       Range{0x10900, 0x1091b, 1},
        Range{0x1091f, 0x1091f, 1},
 }
 
@@ -2696,11 +2976,12 @@ var _Han = []Range{
        Range{0x3021, 0x3029, 1},
        Range{0x3038, 0x303b, 1},
        Range{0x3400, 0x4db5, 1},
-       Range{0x4e00, 0x9fc3, 1},
+       Range{0x4e00, 0x9fcb, 1},
        Range{0xf900, 0xfa2d, 1},
-       Range{0xfa30, 0xfa6a, 1},
+       Range{0xfa30, 0xfa6d, 1},
        Range{0xfa70, 0xfad9, 1},
        Range{0x20000, 0x2a6d6, 1},
+       Range{0x2a700, 0x2b734, 1},
        Range{0x2f800, 0x2fa1d, 1},
 }
 
@@ -2709,87 +2990,102 @@ var _Gothic = []Range{
 }
 
 var (
-       Arabic                  = _Arabic;              // Arabic is the set of Unicode characters in script Arabic.
-       Armenian                = _Armenian;            // Armenian is the set of Unicode characters in script Armenian.
-       Balinese                = _Balinese;            // Balinese is the set of Unicode characters in script Balinese.
-       Bengali                 = _Bengali;             // Bengali is the set of Unicode characters in script Bengali.
-       Bopomofo                = _Bopomofo;            // Bopomofo is the set of Unicode characters in script Bopomofo.
-       Braille                 = _Braille;             // Braille is the set of Unicode characters in script Braille.
-       Buginese                = _Buginese;            // Buginese is the set of Unicode characters in script Buginese.
-       Buhid                   = _Buhid;               // Buhid is the set of Unicode characters in script Buhid.
-       Canadian_Aboriginal     = _Canadian_Aboriginal; // Canadian_Aboriginal is the set of Unicode characters in script Canadian_Aboriginal.
-       Carian                  = _Carian;              // Carian is the set of Unicode characters in script Carian.
-       Cham                    = _Cham;                // Cham is the set of Unicode characters in script Cham.
-       Cherokee                = _Cherokee;            // Cherokee is the set of Unicode characters in script Cherokee.
-       Common                  = _Common;              // Common is the set of Unicode characters in script Common.
-       Coptic                  = _Coptic;              // Coptic is the set of Unicode characters in script Coptic.
-       Cuneiform               = _Cuneiform;           // Cuneiform is the set of Unicode characters in script Cuneiform.
-       Cypriot                 = _Cypriot;             // Cypriot is the set of Unicode characters in script Cypriot.
-       Cyrillic                = _Cyrillic;            // Cyrillic is the set of Unicode characters in script Cyrillic.
-       Deseret                 = _Deseret;             // Deseret is the set of Unicode characters in script Deseret.
-       Devanagari              = _Devanagari;          // Devanagari is the set of Unicode characters in script Devanagari.
-       Ethiopic                = _Ethiopic;            // Ethiopic is the set of Unicode characters in script Ethiopic.
-       Georgian                = _Georgian;            // Georgian is the set of Unicode characters in script Georgian.
-       Glagolitic              = _Glagolitic;          // Glagolitic is the set of Unicode characters in script Glagolitic.
-       Gothic                  = _Gothic;              // Gothic is the set of Unicode characters in script Gothic.
-       Greek                   = _Greek;               // Greek is the set of Unicode characters in script Greek.
-       Gujarati                = _Gujarati;            // Gujarati is the set of Unicode characters in script Gujarati.
-       Gurmukhi                = _Gurmukhi;            // Gurmukhi is the set of Unicode characters in script Gurmukhi.
-       Han                     = _Han;                 // Han is the set of Unicode characters in script Han.
-       Hangul                  = _Hangul;              // Hangul is the set of Unicode characters in script Hangul.
-       Hanunoo                 = _Hanunoo;             // Hanunoo is the set of Unicode characters in script Hanunoo.
-       Hebrew                  = _Hebrew;              // Hebrew is the set of Unicode characters in script Hebrew.
-       Hiragana                = _Hiragana;            // Hiragana is the set of Unicode characters in script Hiragana.
-       Inherited               = _Inherited;           // Inherited is the set of Unicode characters in script Inherited.
-       Kannada                 = _Kannada;             // Kannada is the set of Unicode characters in script Kannada.
-       Katakana                = _Katakana;            // Katakana is the set of Unicode characters in script Katakana.
-       Kayah_Li                = _Kayah_Li;            // Kayah_Li is the set of Unicode characters in script Kayah_Li.
-       Kharoshthi              = _Kharoshthi;          // Kharoshthi is the set of Unicode characters in script Kharoshthi.
-       Khmer                   = _Khmer;               // Khmer is the set of Unicode characters in script Khmer.
-       Lao                     = _Lao;                 // Lao is the set of Unicode characters in script Lao.
-       Latin                   = _Latin;               // Latin is the set of Unicode characters in script Latin.
-       Lepcha                  = _Lepcha;              // Lepcha is the set of Unicode characters in script Lepcha.
-       Limbu                   = _Limbu;               // Limbu is the set of Unicode characters in script Limbu.
-       Linear_B                = _Linear_B;            // Linear_B is the set of Unicode characters in script Linear_B.
-       Lycian                  = _Lycian;              // Lycian is the set of Unicode characters in script Lycian.
-       Lydian                  = _Lydian;              // Lydian is the set of Unicode characters in script Lydian.
-       Malayalam               = _Malayalam;           // Malayalam is the set of Unicode characters in script Malayalam.
-       Mongolian               = _Mongolian;           // Mongolian is the set of Unicode characters in script Mongolian.
-       Myanmar                 = _Myanmar;             // Myanmar is the set of Unicode characters in script Myanmar.
-       New_Tai_Lue             = _New_Tai_Lue;         // New_Tai_Lue is the set of Unicode characters in script New_Tai_Lue.
-       Nko                     = _Nko;                 // Nko is the set of Unicode characters in script Nko.
-       Ogham                   = _Ogham;               // Ogham is the set of Unicode characters in script Ogham.
-       Ol_Chiki                = _Ol_Chiki;            // Ol_Chiki is the set of Unicode characters in script Ol_Chiki.
-       Old_Italic              = _Old_Italic;          // Old_Italic is the set of Unicode characters in script Old_Italic.
-       Old_Persian             = _Old_Persian;         // Old_Persian is the set of Unicode characters in script Old_Persian.
-       Oriya                   = _Oriya;               // Oriya is the set of Unicode characters in script Oriya.
-       Osmanya                 = _Osmanya;             // Osmanya is the set of Unicode characters in script Osmanya.
-       Phags_Pa                = _Phags_Pa;            // Phags_Pa is the set of Unicode characters in script Phags_Pa.
-       Phoenician              = _Phoenician;          // Phoenician is the set of Unicode characters in script Phoenician.
-       Rejang                  = _Rejang;              // Rejang is the set of Unicode characters in script Rejang.
-       Runic                   = _Runic;               // Runic is the set of Unicode characters in script Runic.
-       Saurashtra              = _Saurashtra;          // Saurashtra is the set of Unicode characters in script Saurashtra.
-       Shavian                 = _Shavian;             // Shavian is the set of Unicode characters in script Shavian.
-       Sinhala                 = _Sinhala;             // Sinhala is the set of Unicode characters in script Sinhala.
-       Sundanese               = _Sundanese;           // Sundanese is the set of Unicode characters in script Sundanese.
-       Syloti_Nagri            = _Syloti_Nagri;        // Syloti_Nagri is the set of Unicode characters in script Syloti_Nagri.
-       Syriac                  = _Syriac;              // Syriac is the set of Unicode characters in script Syriac.
-       Tagalog                 = _Tagalog;             // Tagalog is the set of Unicode characters in script Tagalog.
-       Tagbanwa                = _Tagbanwa;            // Tagbanwa is the set of Unicode characters in script Tagbanwa.
-       Tai_Le                  = _Tai_Le;              // Tai_Le is the set of Unicode characters in script Tai_Le.
-       Tamil                   = _Tamil;               // Tamil is the set of Unicode characters in script Tamil.
-       Telugu                  = _Telugu;              // Telugu is the set of Unicode characters in script Telugu.
-       Thaana                  = _Thaana;              // Thaana is the set of Unicode characters in script Thaana.
-       Thai                    = _Thai;                // Thai is the set of Unicode characters in script Thai.
-       Tibetan                 = _Tibetan;             // Tibetan is the set of Unicode characters in script Tibetan.
-       Tifinagh                = _Tifinagh;            // Tifinagh is the set of Unicode characters in script Tifinagh.
-       Ugaritic                = _Ugaritic;            // Ugaritic is the set of Unicode characters in script Ugaritic.
-       Vai                     = _Vai;                 // Vai is the set of Unicode characters in script Vai.
-       Yi                      = _Yi;                  // Yi is the set of Unicode characters in script Yi.
+       Arabic                  = _Arabic;                      // Arabic is the set of Unicode characters in script Arabic.
+       Armenian                = _Armenian;                    // Armenian is the set of Unicode characters in script Armenian.
+       Avestan                 = _Avestan;                     // Avestan is the set of Unicode characters in script Avestan.
+       Balinese                = _Balinese;                    // Balinese is the set of Unicode characters in script Balinese.
+       Bamum                   = _Bamum;                       // Bamum is the set of Unicode characters in script Bamum.
+       Bengali                 = _Bengali;                     // Bengali is the set of Unicode characters in script Bengali.
+       Bopomofo                = _Bopomofo;                    // Bopomofo is the set of Unicode characters in script Bopomofo.
+       Braille                 = _Braille;                     // Braille is the set of Unicode characters in script Braille.
+       Buginese                = _Buginese;                    // Buginese is the set of Unicode characters in script Buginese.
+       Buhid                   = _Buhid;                       // Buhid is the set of Unicode characters in script Buhid.
+       Canadian_Aboriginal     = _Canadian_Aboriginal;         // Canadian_Aboriginal is the set of Unicode characters in script Canadian_Aboriginal.
+       Carian                  = _Carian;                      // Carian is the set of Unicode characters in script Carian.
+       Cham                    = _Cham;                        // Cham is the set of Unicode characters in script Cham.
+       Cherokee                = _Cherokee;                    // Cherokee is the set of Unicode characters in script Cherokee.
+       Common                  = _Common;                      // Common is the set of Unicode characters in script Common.
+       Coptic                  = _Coptic;                      // Coptic is the set of Unicode characters in script Coptic.
+       Cuneiform               = _Cuneiform;                   // Cuneiform is the set of Unicode characters in script Cuneiform.
+       Cypriot                 = _Cypriot;                     // Cypriot is the set of Unicode characters in script Cypriot.
+       Cyrillic                = _Cyrillic;                    // Cyrillic is the set of Unicode characters in script Cyrillic.
+       Deseret                 = _Deseret;                     // Deseret is the set of Unicode characters in script Deseret.
+       Devanagari              = _Devanagari;                  // Devanagari is the set of Unicode characters in script Devanagari.
+       Egyptian_Hieroglyphs    = _Egyptian_Hieroglyphs;        // Egyptian_Hieroglyphs is the set of Unicode characters in script Egyptian_Hieroglyphs.
+       Ethiopic                = _Ethiopic;                    // Ethiopic is the set of Unicode characters in script Ethiopic.
+       Georgian                = _Georgian;                    // Georgian is the set of Unicode characters in script Georgian.
+       Glagolitic              = _Glagolitic;                  // Glagolitic is the set of Unicode characters in script Glagolitic.
+       Gothic                  = _Gothic;                      // Gothic is the set of Unicode characters in script Gothic.
+       Greek                   = _Greek;                       // Greek is the set of Unicode characters in script Greek.
+       Gujarati                = _Gujarati;                    // Gujarati is the set of Unicode characters in script Gujarati.
+       Gurmukhi                = _Gurmukhi;                    // Gurmukhi is the set of Unicode characters in script Gurmukhi.
+       Han                     = _Han;                         // Han is the set of Unicode characters in script Han.
+       Hangul                  = _Hangul;                      // Hangul is the set of Unicode characters in script Hangul.
+       Hanunoo                 = _Hanunoo;                     // Hanunoo is the set of Unicode characters in script Hanunoo.
+       Hebrew                  = _Hebrew;                      // Hebrew is the set of Unicode characters in script Hebrew.
+       Hiragana                = _Hiragana;                    // Hiragana is the set of Unicode characters in script Hiragana.
+       Imperial_Aramaic        = _Imperial_Aramaic;            // Imperial_Aramaic is the set of Unicode characters in script Imperial_Aramaic.
+       Inherited               = _Inherited;                   // Inherited is the set of Unicode characters in script Inherited.
+       Inscriptional_Pahlavi   = _Inscriptional_Pahlavi;       // Inscriptional_Pahlavi is the set of Unicode characters in script Inscriptional_Pahlavi.
+       Inscriptional_Parthian  = _Inscriptional_Parthian;      // Inscriptional_Parthian is the set of Unicode characters in script Inscriptional_Parthian.
+       Javanese                = _Javanese;                    // Javanese is the set of Unicode characters in script Javanese.
+       Kaithi                  = _Kaithi;                      // Kaithi is the set of Unicode characters in script Kaithi.
+       Kannada                 = _Kannada;                     // Kannada is the set of Unicode characters in script Kannada.
+       Katakana                = _Katakana;                    // Katakana is the set of Unicode characters in script Katakana.
+       Kayah_Li                = _Kayah_Li;                    // Kayah_Li is the set of Unicode characters in script Kayah_Li.
+       Kharoshthi              = _Kharoshthi;                  // Kharoshthi is the set of Unicode characters in script Kharoshthi.
+       Khmer                   = _Khmer;                       // Khmer is the set of Unicode characters in script Khmer.
+       Lao                     = _Lao;                         // Lao is the set of Unicode characters in script Lao.
+       Latin                   = _Latin;                       // Latin is the set of Unicode characters in script Latin.
+       Lepcha                  = _Lepcha;                      // Lepcha is the set of Unicode characters in script Lepcha.
+       Limbu                   = _Limbu;                       // Limbu is the set of Unicode characters in script Limbu.
+       Linear_B                = _Linear_B;                    // Linear_B is the set of Unicode characters in script Linear_B.
+       Lisu                    = _Lisu;                        // Lisu is the set of Unicode characters in script Lisu.
+       Lycian                  = _Lycian;                      // Lycian is the set of Unicode characters in script Lycian.
+       Lydian                  = _Lydian;                      // Lydian is the set of Unicode characters in script Lydian.
+       Malayalam               = _Malayalam;                   // Malayalam is the set of Unicode characters in script Malayalam.
+       Meetei_Mayek            = _Meetei_Mayek;                // Meetei_Mayek is the set of Unicode characters in script Meetei_Mayek.
+       Mongolian               = _Mongolian;                   // Mongolian is the set of Unicode characters in script Mongolian.
+       Myanmar                 = _Myanmar;                     // Myanmar is the set of Unicode characters in script Myanmar.
+       New_Tai_Lue             = _New_Tai_Lue;                 // New_Tai_Lue is the set of Unicode characters in script New_Tai_Lue.
+       Nko                     = _Nko;                         // Nko is the set of Unicode characters in script Nko.
+       Ogham                   = _Ogham;                       // Ogham is the set of Unicode characters in script Ogham.
+       Ol_Chiki                = _Ol_Chiki;                    // Ol_Chiki is the set of Unicode characters in script Ol_Chiki.
+       Old_Italic              = _Old_Italic;                  // Old_Italic is the set of Unicode characters in script Old_Italic.
+       Old_Persian             = _Old_Persian;                 // Old_Persian is the set of Unicode characters in script Old_Persian.
+       Old_South_Arabian       = _Old_South_Arabian;           // Old_South_Arabian is the set of Unicode characters in script Old_South_Arabian.
+       Old_Turkic              = _Old_Turkic;                  // Old_Turkic is the set of Unicode characters in script Old_Turkic.
+       Oriya                   = _Oriya;                       // Oriya is the set of Unicode characters in script Oriya.
+       Osmanya                 = _Osmanya;                     // Osmanya is the set of Unicode characters in script Osmanya.
+       Phags_Pa                = _Phags_Pa;                    // Phags_Pa is the set of Unicode characters in script Phags_Pa.
+       Phoenician              = _Phoenician;                  // Phoenician is the set of Unicode characters in script Phoenician.
+       Rejang                  = _Rejang;                      // Rejang is the set of Unicode characters in script Rejang.
+       Runic                   = _Runic;                       // Runic is the set of Unicode characters in script Runic.
+       Samaritan               = _Samaritan;                   // Samaritan is the set of Unicode characters in script Samaritan.
+       Saurashtra              = _Saurashtra;                  // Saurashtra is the set of Unicode characters in script Saurashtra.
+       Shavian                 = _Shavian;                     // Shavian is the set of Unicode characters in script Shavian.
+       Sinhala                 = _Sinhala;                     // Sinhala is the set of Unicode characters in script Sinhala.
+       Sundanese               = _Sundanese;                   // Sundanese is the set of Unicode characters in script Sundanese.
+       Syloti_Nagri            = _Syloti_Nagri;                // Syloti_Nagri is the set of Unicode characters in script Syloti_Nagri.
+       Syriac                  = _Syriac;                      // Syriac is the set of Unicode characters in script Syriac.
+       Tagalog                 = _Tagalog;                     // Tagalog is the set of Unicode characters in script Tagalog.
+       Tagbanwa                = _Tagbanwa;                    // Tagbanwa is the set of Unicode characters in script Tagbanwa.
+       Tai_Le                  = _Tai_Le;                      // Tai_Le is the set of Unicode characters in script Tai_Le.
+       Tai_Tham                = _Tai_Tham;                    // Tai_Tham is the set of Unicode characters in script Tai_Tham.
+       Tai_Viet                = _Tai_Viet;                    // Tai_Viet is the set of Unicode characters in script Tai_Viet.
+       Tamil                   = _Tamil;                       // Tamil is the set of Unicode characters in script Tamil.
+       Telugu                  = _Telugu;                      // Telugu is the set of Unicode characters in script Telugu.
+       Thaana                  = _Thaana;                      // Thaana is the set of Unicode characters in script Thaana.
+       Thai                    = _Thai;                        // Thai is the set of Unicode characters in script Thai.
+       Tibetan                 = _Tibetan;                     // Tibetan is the set of Unicode characters in script Tibetan.
+       Tifinagh                = _Tifinagh;                    // Tifinagh is the set of Unicode characters in script Tifinagh.
+       Ugaritic                = _Ugaritic;                    // Ugaritic is the set of Unicode characters in script Ugaritic.
+       Vai                     = _Vai;                         // Vai is the set of Unicode characters in script Vai.
+       Yi                      = _Yi;                          // Yi is the set of Unicode characters in script Yi.
 )
 
 // Generated by running
-//     maketables --props=all --url=http://www.unicode.org/Public/5.1.0/ucd/
+//     maketables --props=all --url=http://www.unicode.org/Public/5.2.0/ucd/
 // DO NOT EDIT
 
 // Properties is the set of Unicode property tables.
@@ -2939,10 +3235,12 @@ var _ASCII_Hex_Digit = []Range{
 }
 
 var _Deprecated = []Range{
-       Range{0x0340, 0x0341, 1},
-       Range{0x17a3, 0x17a3, 1},
-       Range{0x17d3, 0x17d3, 1},
+       Range{0x0149, 0x0149, 1},
+       Range{0x0f77, 0x0f77, 1},
+       Range{0x0f79, 0x0f79, 1},
+       Range{0x17a3, 0x17a4, 1},
        Range{0x206a, 0x206f, 1},
+       Range{0x2329, 0x232a, 1},
        Range{0xe0001, 0xe0001, 1},
        Range{0xe0020, 0xe007f, 1},
 }
@@ -2964,6 +3262,7 @@ var _Terminal_Punctuation = []Range{
        Range{0x0700, 0x070a, 1},
        Range{0x070c, 0x070c, 1},
        Range{0x07f8, 0x07f9, 1},
+       Range{0x0830, 0x083e, 1},
        Range{0x0964, 0x0965, 1},
        Range{0x0e5a, 0x0e5b, 1},
        Range{0x0f08, 0x0f08, 1},
@@ -2977,6 +3276,7 @@ var _Terminal_Punctuation = []Range{
        Range{0x1802, 0x1805, 1},
        Range{0x1808, 0x1809, 1},
        Range{0x1944, 0x1945, 1},
+       Range{0x1aa8, 0x1aab, 1},
        Range{0x1b5a, 0x1b5b, 1},
        Range{0x1b5d, 0x1b5f, 1},
        Range{0x1c3b, 0x1c3f, 1},
@@ -2985,11 +3285,16 @@ var _Terminal_Punctuation = []Range{
        Range{0x2047, 0x2049, 1},
        Range{0x2e2e, 0x2e2e, 1},
        Range{0x3001, 0x3002, 1},
+       Range{0xa4fe, 0xa4ff, 1},
        Range{0xa60d, 0xa60f, 1},
+       Range{0xa6f3, 0xa6f7, 1},
        Range{0xa876, 0xa877, 1},
        Range{0xa8ce, 0xa8cf, 1},
        Range{0xa92f, 0xa92f, 1},
+       Range{0xa9c7, 0xa9c9, 1},
        Range{0xaa5d, 0xaa5f, 1},
+       Range{0xaadf, 0xaadf, 1},
+       Range{0xabeb, 0xabeb, 1},
        Range{0xfe50, 0xfe52, 1},
        Range{0xfe54, 0xfe57, 1},
        Range{0xff01, 0xff01, 1},
@@ -3001,7 +3306,10 @@ var _Terminal_Punctuation = []Range{
        Range{0xff64, 0xff64, 1},
        Range{0x1039f, 0x1039f, 1},
        Range{0x103d0, 0x103d0, 1},
+       Range{0x10857, 0x10857, 1},
        Range{0x1091f, 0x1091f, 1},
+       Range{0x10b3a, 0x10b3f, 1},
+       Range{0x110be, 0x110c1, 1},
        Range{0x12470, 0x12473, 1},
 }
 
@@ -3162,7 +3470,7 @@ var _Other_Math = []Range{
 
 var _Unified_Ideograph = []Range{
        Range{0x3400, 0x4db5, 1},
-       Range{0x4e00, 0x9fc3, 1},
+       Range{0x4e00, 0x9fcb, 1},
        Range{0xfa0e, 0xfa0f, 1},
        Range{0xfa11, 0xfa11, 1},
        Range{0xfa13, 0xfa14, 1},
@@ -3171,6 +3479,7 @@ var _Unified_Ideograph = []Range{
        Range{0xfa23, 0xfa24, 1},
        Range{0xfa27, 0xfa29, 1},
        Range{0x20000, 0x2a6d6, 1},
+       Range{0x2a700, 0x2b734, 1},
 }
 
 var _Hyphen = []Range{
@@ -3194,6 +3503,9 @@ var _IDS_Binary_Operator = []Range{
 var _Logical_Order_Exception = []Range{
        Range{0x0e40, 0x0e44, 1},
        Range{0x0ec0, 0x0ec4, 1},
+       Range{0xaab5, 0xaab6, 1},
+       Range{0xaab9, 0xaab9, 1},
+       Range{0xaabb, 0xaabc, 1},
 }
 
 var _Radical = []Range{
@@ -3234,17 +3546,23 @@ var _STerm = []Range{
        Range{0x2047, 0x2049, 1},
        Range{0x2e2e, 0x2e2e, 1},
        Range{0x3002, 0x3002, 1},
+       Range{0xa4ff, 0xa4ff, 1},
        Range{0xa60e, 0xa60f, 1},
+       Range{0xa6f3, 0xa6f3, 1},
+       Range{0xa6f7, 0xa6f7, 1},
        Range{0xa876, 0xa877, 1},
        Range{0xa8ce, 0xa8cf, 1},
        Range{0xa92f, 0xa92f, 1},
+       Range{0xa9c8, 0xa9c9, 1},
        Range{0xaa5d, 0xaa5f, 1},
+       Range{0xabeb, 0xabeb, 1},
        Range{0xfe52, 0xfe52, 1},
        Range{0xfe56, 0xfe57, 1},
        Range{0xff01, 0xff01, 1},
        Range{0xff0e, 0xff0e, 1},
        Range{0xff1f, 0xff1f, 1},
        Range{0xff61, 0xff61, 1},
+       Range{0x110be, 0x110c1, 1},
 }
 
 var _Other_Alphabetic = []Range{
@@ -3265,8 +3583,14 @@ var _Other_Alphabetic = []Range{
        Range{0x0711, 0x0711, 1},
        Range{0x0730, 0x073f, 1},
        Range{0x07a6, 0x07b0, 1},
-       Range{0x0901, 0x0903, 1},
+       Range{0x0816, 0x0817, 1},
+       Range{0x081b, 0x0823, 1},
+       Range{0x0825, 0x0827, 1},
+       Range{0x0829, 0x082c, 1},
+       Range{0x0900, 0x0903, 1},
        Range{0x093e, 0x094c, 1},
+       Range{0x094e, 0x094e, 1},
+       Range{0x0955, 0x0955, 1},
        Range{0x0962, 0x0963, 1},
        Range{0x0981, 0x0983, 1},
        Range{0x09be, 0x09c4, 1},
@@ -3339,6 +3663,7 @@ var _Other_Alphabetic = []Range{
        Range{0x1067, 0x1068, 1},
        Range{0x1071, 0x1074, 1},
        Range{0x1082, 0x1086, 1},
+       Range{0x109c, 0x109d, 1},
        Range{0x135f, 0x135f, 1},
        Range{0x1712, 0x1713, 1},
        Range{0x1732, 0x1733, 1},
@@ -3351,11 +3676,14 @@ var _Other_Alphabetic = []Range{
        Range{0x19b0, 0x19c0, 1},
        Range{0x19c8, 0x19c9, 1},
        Range{0x1a17, 0x1a1b, 1},
+       Range{0x1a55, 0x1a5e, 1},
+       Range{0x1a61, 0x1a74, 1},
        Range{0x1b00, 0x1b04, 1},
        Range{0x1b35, 0x1b43, 1},
        Range{0x1b80, 0x1b82, 1},
        Range{0x1ba1, 0x1ba9, 1},
        Range{0x1c24, 0x1c35, 1},
+       Range{0x1cf2, 0x1cf2, 1},
        Range{0x24b6, 0x24e9, 1},
        Range{0x2de0, 0x2dff, 1},
        Range{0xa823, 0xa827, 1},
@@ -3363,13 +3691,22 @@ var _Other_Alphabetic = []Range{
        Range{0xa8b4, 0xa8c3, 1},
        Range{0xa926, 0xa92a, 1},
        Range{0xa947, 0xa952, 1},
+       Range{0xa980, 0xa983, 1},
+       Range{0xa9b3, 0xa9bf, 1},
        Range{0xaa29, 0xaa36, 1},
        Range{0xaa43, 0xaa43, 1},
        Range{0xaa4c, 0xaa4d, 1},
+       Range{0xaab0, 0xaab0, 1},
+       Range{0xaab2, 0xaab4, 1},
+       Range{0xaab7, 0xaab8, 1},
+       Range{0xaabe, 0xaabe, 1},
+       Range{0xabe3, 0xabea, 1},
        Range{0xfb1e, 0xfb1e, 1},
        Range{0x10a01, 0x10a03, 1},
        Range{0x10a05, 0x10a06, 1},
        Range{0x10a0c, 0x10a0f, 1},
+       Range{0x11082, 0x11082, 1},
+       Range{0x110b0, 0x110b8, 1},
 }
 
 var _Diacritic = []Range{
@@ -3400,6 +3737,7 @@ var _Diacritic = []Range{
        Range{0x0730, 0x074a, 1},
        Range{0x07a6, 0x07b0, 1},
        Range{0x07eb, 0x07f5, 1},
+       Range{0x0818, 0x0819, 1},
        Range{0x093c, 0x093c, 1},
        Range{0x094d, 0x094d, 1},
        Range{0x0951, 0x0954, 1},
@@ -3433,24 +3771,30 @@ var _Diacritic = []Range{
        Range{0x1039, 0x103a, 1},
        Range{0x1087, 0x108d, 1},
        Range{0x108f, 0x108f, 1},
+       Range{0x109a, 0x109b, 1},
        Range{0x17c9, 0x17d3, 1},
        Range{0x17dd, 0x17dd, 1},
        Range{0x1939, 0x193b, 1},
+       Range{0x1a75, 0x1a7c, 1},
+       Range{0x1a7f, 0x1a7f, 1},
        Range{0x1b34, 0x1b34, 1},
        Range{0x1b44, 0x1b44, 1},
        Range{0x1b6b, 0x1b73, 1},
        Range{0x1baa, 0x1baa, 1},
        Range{0x1c36, 0x1c37, 1},
        Range{0x1c78, 0x1c7d, 1},
+       Range{0x1cd0, 0x1ce8, 1},
+       Range{0x1ced, 0x1ced, 1},
        Range{0x1d2c, 0x1d6a, 1},
        Range{0x1dc4, 0x1dcf, 1},
-       Range{0x1dfe, 0x1dff, 1},
+       Range{0x1dfd, 0x1dff, 1},
        Range{0x1fbd, 0x1fbd, 1},
        Range{0x1fbf, 0x1fc1, 1},
        Range{0x1fcd, 0x1fcf, 1},
        Range{0x1fdd, 0x1fdf, 1},
        Range{0x1fed, 0x1fef, 1},
        Range{0x1ffd, 0x1ffe, 1},
+       Range{0x2cef, 0x2cf1, 1},
        Range{0x2e2f, 0x2e2f, 1},
        Range{0x302a, 0x302f, 1},
        Range{0x3099, 0x309c, 1},
@@ -3458,11 +3802,18 @@ var _Diacritic = []Range{
        Range{0xa66f, 0xa66f, 1},
        Range{0xa67c, 0xa67d, 1},
        Range{0xa67f, 0xa67f, 1},
+       Range{0xa6f0, 0xa6f1, 1},
        Range{0xa717, 0xa721, 1},
        Range{0xa788, 0xa788, 1},
        Range{0xa8c4, 0xa8c4, 1},
+       Range{0xa8e0, 0xa8f1, 1},
        Range{0xa92b, 0xa92e, 1},
        Range{0xa953, 0xa953, 1},
+       Range{0xa9b3, 0xa9b3, 1},
+       Range{0xa9c0, 0xa9c0, 1},
+       Range{0xaa7b, 0xaa7b, 1},
+       Range{0xaabf, 0xaac2, 1},
+       Range{0xabec, 0xabed, 1},
        Range{0xfb1e, 0xfb1e, 1},
        Range{0xfe20, 0xfe26, 1},
        Range{0xff3e, 0xff3e, 1},
@@ -3470,6 +3821,7 @@ var _Diacritic = []Range{
        Range{0xff70, 0xff70, 1},
        Range{0xff9e, 0xff9f, 1},
        Range{0xffe3, 0xffe3, 1},
+       Range{0x110b9, 0x110ba, 1},
        Range{0x1d167, 0x1d169, 1},
        Range{0x1d16d, 0x1d172, 1},
        Range{0x1d17b, 0x1d182, 1},
@@ -3485,6 +3837,7 @@ var _Extender = []Range{
        Range{0x0e46, 0x0e46, 1},
        Range{0x0ec6, 0x0ec6, 1},
        Range{0x1843, 0x1843, 1},
+       Range{0x1aa7, 0x1aa7, 1},
        Range{0x1c36, 0x1c36, 1},
        Range{0x1c7b, 0x1c7b, 1},
        Range{0x3005, 0x3005, 1},
@@ -3493,6 +3846,9 @@ var _Extender = []Range{
        Range{0x30fc, 0x30fe, 1},
        Range{0xa015, 0xa015, 1},
        Range{0xa60c, 0xa60c, 1},
+       Range{0xa9cf, 0xa9cf, 1},
+       Range{0xaa70, 0xaa70, 1},
+       Range{0xaadd, 0xaadd, 1},
        Range{0xff70, 0xff70, 1},
 }
 
@@ -3505,11 +3861,12 @@ var _Ideographic = []Range{
        Range{0x3021, 0x3029, 1},
        Range{0x3038, 0x303a, 1},
        Range{0x3400, 0x4db5, 1},
-       Range{0x4e00, 0x9fc3, 1},
+       Range{0x4e00, 0x9fcb, 1},
        Range{0xf900, 0xfa2d, 1},
-       Range{0xfa30, 0xfa6a, 1},
+       Range{0xfa30, 0xfa6d, 1},
        Range{0xfa70, 0xfad9, 1},
        Range{0x20000, 0x2a6d6, 1},
+       Range{0x2a700, 0x2b734, 1},
        Range{0x2f800, 0x2fa1d, 1},
 }
 
@@ -3517,6 +3874,7 @@ var _Dash = []Range{
        Range{0x002d, 0x002d, 1},
        Range{0x058a, 0x058a, 1},
        Range{0x05be, 0x05be, 1},
+       Range{0x1400, 0x1400, 1},
        Range{0x1806, 0x1806, 1},
        Range{0x2010, 0x2015, 1},
        Range{0x2053, 0x2053, 1},
@@ -3620,7 +3978,7 @@ var (
 )
 
 // Generated by running
-//     maketables --data=http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
+//     maketables --data=http://www.unicode.org/Public/5.2.0/ucd/UnicodeData.txt
 // DO NOT EDIT
 
 // CaseRanges is the table describing case mappings for all letters with
@@ -3704,6 +4062,7 @@ var _CaseRanges = []CaseRange{
        CaseRange{0x023B, 0x023C, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x023D, 0x023D, d{0, -163, 0}},
        CaseRange{0x023E, 0x023E, d{0, 10792, 0}},
+       CaseRange{0x023F, 0x0240, d{10815, 0, 10815}},
        CaseRange{0x0241, 0x0242, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x0243, 0x0243, d{0, -195, 0}},
        CaseRange{0x0244, 0x0244, d{0, 69, 0}},
@@ -3711,6 +4070,7 @@ var _CaseRanges = []CaseRange{
        CaseRange{0x0246, 0x024F, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x0250, 0x0250, d{10783, 0, 10783}},
        CaseRange{0x0251, 0x0251, d{10780, 0, 10780}},
+       CaseRange{0x0252, 0x0252, d{10782, 0, 10782}},
        CaseRange{0x0253, 0x0253, d{-210, 0, -210}},
        CaseRange{0x0254, 0x0254, d{-206, 0, -206}},
        CaseRange{0x0256, 0x0257, d{-205, 0, -205}},
@@ -3774,7 +4134,7 @@ var _CaseRanges = []CaseRange{
        CaseRange{0x04C0, 0x04C0, d{0, 15, 0}},
        CaseRange{0x04C1, 0x04CE, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x04CF, 0x04CF, d{-15, 0, -15}},
-       CaseRange{0x04D0, 0x0523, d{UpperLower, UpperLower, UpperLower}},
+       CaseRange{0x04D0, 0x0525, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x0531, 0x0556, d{0, 48, 0}},
        CaseRange{0x0561, 0x0586, d{-48, 0, -48}},
        CaseRange{0x10A0, 0x10C5, d{0, 7264, 0}},
@@ -3855,9 +4215,12 @@ var _CaseRanges = []CaseRange{
        CaseRange{0x2C6D, 0x2C6D, d{0, -10780, 0}},
        CaseRange{0x2C6E, 0x2C6E, d{0, -10749, 0}},
        CaseRange{0x2C6F, 0x2C6F, d{0, -10783, 0}},
+       CaseRange{0x2C70, 0x2C70, d{0, -10782, 0}},
        CaseRange{0x2C72, 0x2C73, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x2C75, 0x2C76, d{UpperLower, UpperLower, UpperLower}},
+       CaseRange{0x2C7E, 0x2C7F, d{0, -10815, 0}},
        CaseRange{0x2C80, 0x2CE3, d{UpperLower, UpperLower, UpperLower}},
+       CaseRange{0x2CEB, 0x2CEE, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0x2D00, 0x2D25, d{-7264, 0, -7264}},
        CaseRange{0xA640, 0xA65F, d{UpperLower, UpperLower, UpperLower}},
        CaseRange{0xA662, 0xA66D, d{UpperLower, UpperLower, UpperLower}},