diff options
| author | Cory Benfield <lukasaoz@gmail.com> | 2017-05-09 09:36:27 +0100 |
|---|---|---|
| committer | Cory Benfield <lukasaoz@gmail.com> | 2017-05-09 09:36:27 +0100 |
| commit | debc5de6d4cf77f85f261d55f41084729e25f928 (patch) | |
| tree | 466a68c4aa3a08209b4d4a4569df2d08a530d207 /requests | |
| parent | 4bad52caa224a83b3e49b2063fcb21e7b85bbae9 (diff) | |
| download | python-requests-debc5de6d4cf77f85f261d55f41084729e25f928.tar.gz | |
Update idna to v2.5
Diffstat (limited to 'requests')
| -rw-r--r-- | requests/packages/idna/core.py | 20 | ||||
| -rw-r--r-- | requests/packages/idna/idnadata.py | 3120 | ||||
| -rw-r--r-- | requests/packages/idna/intranges.py | 17 |
3 files changed, 1582 insertions, 1575 deletions
diff --git a/requests/packages/idna/core.py b/requests/packages/idna/core.py index ff3b38d6..b55b6645 100644 --- a/requests/packages/idna/core.py +++ b/requests/packages/idna/core.py @@ -156,9 +156,9 @@ def valid_contextj(label, pos): ok = False for i in range(pos-1, -1, -1): joining_type = idnadata.joining_types.get(ord(label[i])) - if joining_type == 'T': + if joining_type == ord('T'): continue - if joining_type in ['L', 'D']: + if joining_type in [ord('L'), ord('D')]: ok = True break @@ -168,9 +168,9 @@ def valid_contextj(label, pos): ok = False for i in range(pos+1, len(label)): joining_type = idnadata.joining_types.get(ord(label[i])) - if joining_type == 'T': + if joining_type == ord('T'): continue - if joining_type in ['R', 'D']: + if joining_type in [ord('R'), ord('D')]: ok = True break return ok @@ -211,9 +211,9 @@ def valid_contexto(label, pos, exception=False): for cp in label: if cp == u'\u30fb': continue - if not _is_script(cp, 'Hiragana') and not _is_script(cp, 'Katakana') and not _is_script(cp, 'Han'): - return False - return True + if _is_script(cp, 'Hiragana') or _is_script(cp, 'Katakana') or _is_script(cp, 'Han'): + return True + return False elif 0x660 <= cp_value <= 0x669: for cp in label: @@ -261,12 +261,12 @@ def alabel(label): label = label.encode('ascii') try: ulabel(label) - except: + except IDNAError: raise IDNAError('The label {0} is not a valid A-label'.format(label)) if not valid_label_length(label): raise IDNAError('Label too long') return label - except UnicodeError: + except UnicodeEncodeError: pass if not label: @@ -288,7 +288,7 @@ def ulabel(label): if not isinstance(label, (bytes, bytearray)): try: label = label.encode('ascii') - except UnicodeError: + except UnicodeEncodeError: check_label(label) return label diff --git a/requests/packages/idna/idnadata.py b/requests/packages/idna/idnadata.py index 2bffe527..2ff30fee 100644 --- a/requests/packages/idna/idnadata.py +++ b/requests/packages/idna/idnadata.py @@ -2,1583 +2,1583 @@ scripts = { 'Greek': ( - (0x370, 0x374), - (0x375, 0x378), - (0x37a, 0x37e), - (0x384, 0x385), - (0x386, 0x387), - (0x388, 0x38b), - (0x38c, 0x38d), - (0x38e, 0x3a2), - (0x3a3, 0x3e2), - (0x3f0, 0x400), - (0x1d26, 0x1d2b), - (0x1d5d, 0x1d62), - (0x1d66, 0x1d6b), - (0x1dbf, 0x1dc0), - (0x1f00, 0x1f16), - (0x1f18, 0x1f1e), - (0x1f20, 0x1f46), - (0x1f48, 0x1f4e), - (0x1f50, 0x1f58), - (0x1f59, 0x1f5a), - (0x1f5b, 0x1f5c), - (0x1f5d, 0x1f5e), - (0x1f5f, 0x1f7e), - (0x1f80, 0x1fb5), - (0x1fb6, 0x1fc5), - (0x1fc6, 0x1fd4), - (0x1fd6, 0x1fdc), - (0x1fdd, 0x1ff0), - (0x1ff2, 0x1ff5), - (0x1ff6, 0x1fff), - (0x2126, 0x2127), - (0x10140, 0x1018b), - (0x1d200, 0x1d246), + 0x37000000374, + 0x37500000378, + 0x37a0000037e, + 0x38400000385, + 0x38600000387, + 0x3880000038b, + 0x38c0000038d, + 0x38e000003a2, + 0x3a3000003e2, + 0x3f000000400, + 0x1d2600001d2b, + 0x1d5d00001d62, + 0x1d6600001d6b, + 0x1dbf00001dc0, + 0x1f0000001f16, + 0x1f1800001f1e, + 0x1f2000001f46, + 0x1f4800001f4e, + 0x1f5000001f58, + 0x1f5900001f5a, + 0x1f5b00001f5c, + 0x1f5d00001f5e, + 0x1f5f00001f7e, + 0x1f8000001fb5, + 0x1fb600001fc5, + 0x1fc600001fd4, + 0x1fd600001fdc, + 0x1fdd00001ff0, + 0x1ff200001ff5, + 0x1ff600001fff, + 0x212600002127, + 0x101400001018b, + 0x1d2000001d246, ), 'Han': ( - (0x2e80, 0x2e9a), - (0x2e9b, 0x2ef4), - (0x2f00, 0x2fd6), - (0x3005, 0x3006), - (0x3007, 0x3008), - (0x3021, 0x302a), - (0x3038, 0x303c), - (0x3400, 0x4db6), - (0x4e00, 0x9fcd), - (0xf900, 0xfa6e), - (0xfa70, 0xfada), - (0x20000, 0x2a6d7), - (0x2a700, 0x2b735), - (0x2b740, 0x2b81e), - (0x2f800, 0x2fa1e), + 0x2e8000002e9a, + 0x2e9b00002ef4, + 0x2f0000002fd6, + 0x300500003006, + 0x300700003008, + 0x30210000302a, + 0x30380000303c, + 0x340000004db6, + 0x4e0000009fcd, + 0xf9000000fa6e, + 0xfa700000fada, + 0x200000002a6d7, + 0x2a7000002b735, + 0x2b7400002b81e, + 0x2f8000002fa1e, ), 'Hebrew': ( - (0x591, 0x5c8), - (0x5d0, 0x5eb), - (0x5f0, 0x5f5), - (0xfb1d, 0xfb37), - (0xfb38, 0xfb3d), - (0xfb3e, 0xfb3f), - (0xfb40, 0xfb42), - (0xfb43, 0xfb45), - (0xfb46, 0xfb50), + 0x591000005c8, + 0x5d0000005eb, + 0x5f0000005f5, + 0xfb1d0000fb37, + 0xfb380000fb3d, + 0xfb3e0000fb3f, + 0xfb400000fb42, + 0xfb430000fb45, + 0xfb460000fb50, ), 'Hiragana': ( - (0x3041, 0x3097), - (0x309d, 0x30a0), - (0x1b001, 0x1b002), - (0x1f200, 0x1f201), + 0x304100003097, + 0x309d000030a0, + 0x1b0010001b002, + 0x1f2000001f201, ), 'Katakana': ( - (0x30a1, 0x30fb), - (0x30fd, 0x3100), - (0x31f0, 0x3200), - (0x32d0, 0x32ff), - (0x3300, 0x3358), - (0xff66, 0xff70), - (0xff71, 0xff9e), - (0x1b000, 0x1b001), + 0x30a1000030fb, + 0x30fd00003100, + 0x31f000003200, + 0x32d0000032ff, + 0x330000003358, + 0xff660000ff70, + 0xff710000ff9e, + 0x1b0000001b001, ), } joining_types = { - 0x600: 'U', - 0x601: 'U', - 0x602: 'U', - 0x603: 'U', - 0x604: 'U', - 0x608: 'U', - 0x60b: 'U', - 0x620: 'D', - 0x621: 'U', - 0x622: 'R', - 0x623: 'R', - 0x624: 'R', - 0x625: 'R', - 0x626: 'D', - 0x627: 'R', - 0x628: 'D', - 0x629: 'R', - 0x62a: 'D', - 0x62b: 'D', - 0x62c: 'D', - 0x62d: 'D', - 0x62e: 'D', - 0x62f: 'R', - 0x630: 'R', - 0x631: 'R', - 0x632: 'R', - 0x633: 'D', - 0x634: 'D', - 0x635: 'D', - 0x636: 'D', - 0x637: 'D', - 0x638: 'D', - 0x639: 'D', - 0x63a: 'D', - 0x63b: 'D', - 0x63c: 'D', - 0x63d: 'D', - 0x63e: 'D', - 0x63f: 'D', - 0x640: 'C', - 0x641: 'D', - 0x642: 'D', - 0x643: 'D', - 0x644: 'D', - 0x645: 'D', - 0x646: 'D', - 0x647: 'D', - 0x648: 'R', - 0x649: 'D', - 0x64a: 'D', - 0x66e: 'D', - 0x66f: 'D', - 0x671: 'R', - 0x672: 'R', - 0x673: 'R', - 0x674: 'U', - 0x675: 'R', - 0x676: 'R', - 0x677: 'R', - 0x678: 'D', - 0x679: 'D', - 0x67a: 'D', - 0x67b: 'D', - 0x67c: 'D', - 0x67d: 'D', - 0x67e: 'D', - 0x67f: 'D', - 0x680: 'D', - 0x681: 'D', - 0x682: 'D', - 0x683: 'D', - 0x684: 'D', - 0x685: 'D', - 0x686: 'D', - 0x687: 'D', - 0x688: 'R', - 0x689: 'R', - 0x68a: 'R', - 0x68b: 'R', - 0x68c: 'R', - 0x68d: 'R', - 0x68e: 'R', - 0x68f: 'R', - 0x690: 'R', - 0x691: 'R', - 0x692: 'R', - 0x693: 'R', - 0x694: 'R', - 0x695: 'R', - 0x696: 'R', - 0x697: 'R', - 0x698: 'R', - 0x699: 'R', - 0x69a: 'D', - 0x69b: 'D', - 0x69c: 'D', - 0x69d: 'D', - 0x69e: 'D', - 0x69f: 'D', - 0x6a0: 'D', - 0x6a1: 'D', - 0x6a2: 'D', - 0x6a3: 'D', - 0x6a4: 'D', - 0x6a5: 'D', - 0x6a6: 'D', - 0x6a7: 'D', - 0x6a8: 'D', - 0x6a9: 'D', - 0x6aa: 'D', - 0x6ab: 'D', - 0x6ac: 'D', - 0x6ad: 'D', - 0x6ae: 'D', - 0x6af: 'D', - 0x6b0: 'D', - 0x6b1: 'D', - 0x6b2: 'D', - 0x6b3: 'D', - 0x6b4: 'D', - 0x6b5: 'D', - 0x6b6: 'D', - 0x6b7: 'D', - 0x6b8: 'D', - 0x6b9: 'D', - 0x6ba: 'D', - 0x6bb: 'D', - 0x6bc: 'D', - 0x6bd: 'D', - 0x6be: 'D', - 0x6bf: 'D', - 0x6c0: 'R', - 0x6c1: 'D', - 0x6c2: 'D', - 0x6c3: 'R', - 0x6c4: 'R', - 0x6c5: 'R', - 0x6c6: 'R', - 0x6c7: 'R', - 0x6c8: 'R', - 0x6c9: 'R', - 0x6ca: 'R', - 0x6cb: 'R', - 0x6cc: 'D', - 0x6cd: 'R', - 0x6ce: 'D', - 0x6cf: 'R', - 0x6d0: 'D', - 0x6d1: 'D', - 0x6d2: 'R', - 0x6d3: 'R', - 0x6d5: 'R', - 0x6dd: 'U', - 0x6ee: 'R', - 0x6ef: 'R', - 0x6fa: 'D', - 0x6fb: 'D', - 0x6fc: 'D', - 0x6ff: 'D', - 0x710: 'R', - 0x712: 'D', - 0x713: 'D', - 0x714: 'D', - 0x715: 'R', - 0x716: 'R', - 0x717: 'R', - 0x718: 'R', - 0x719: 'R', - 0x71a: 'D', - 0x71b: 'D', - 0x71c: 'D', - 0x71d: 'D', - 0x71e: 'R', - 0x71f: 'D', - 0x720: 'D', - 0x721: 'D', - 0x722: 'D', - 0x723: 'D', - 0x724: 'D', - 0x725: 'D', - 0x726: 'D', - 0x727: 'D', - 0x728: 'R', - 0x729: 'D', - 0x72a: 'R', - 0x72b: 'D', - 0x72c: 'R', - 0x72d: 'D', - 0x72e: 'D', - 0x72f: 'R', - 0x74d: 'R', - 0x74e: 'D', - 0x74f: 'D', - 0x750: 'D', - 0x751: 'D', - 0x752: 'D', - 0x753: 'D', - 0x754: 'D', - 0x755: 'D', - 0x756: 'D', - 0x757: 'D', - 0x758: 'D', - 0x759: 'R', - 0x75a: 'R', - 0x75b: 'R', - 0x75c: 'D', - 0x75d: 'D', - 0x75e: 'D', - 0x75f: 'D', - 0x760: 'D', - 0x761: 'D', - 0x762: 'D', - 0x763: 'D', - 0x764: 'D', - 0x765: 'D', - 0x766: 'D', - 0x767: 'D', - 0x768: 'D', - 0x769: 'D', - 0x76a: 'D', - 0x76b: 'R', - 0x76c: 'R', - 0x76d: 'D', - 0x76e: 'D', - 0x76f: 'D', - 0x770: 'D', - 0x771: 'R', - 0x772: 'D', - 0x773: 'R', - 0x774: 'R', - 0x775: 'D', - 0x776: 'D', - 0x777: 'D', - 0x778: 'R', - 0x779: 'R', - 0x77a: 'D', - 0x77b: 'D', - 0x77c: 'D', - 0x77d: 'D', - 0x77e: 'D', - 0x77f: 'D', - 0x7ca: 'D', - 0x7cb: 'D', - 0x7cc: 'D', - 0x7cd: 'D', - 0x7ce: 'D', - 0x7cf: 'D', - 0x7d0: 'D', - 0x7d1: 'D', - 0x7d2: 'D', - 0x7d3: 'D', - 0x7d4: 'D', - 0x7d5: 'D', - 0x7d6: 'D', - 0x7d7: 'D', - 0x7d8: 'D', - 0x7d9: 'D', - 0x7da: 'D', - 0x7db: 'D', - 0x7dc: 'D', - 0x7dd: 'D', - 0x7de: 'D', - 0x7df: 'D', - 0x7e0: 'D', - 0x7e1: 'D', - 0x7e2: 'D', - 0x7e3: 'D', - 0x7e4: 'D', - 0x7e5: 'D', - 0x7e6: 'D', - 0x7e7: 'D', - 0x7e8: 'D', - 0x7e9: 'D', - 0x7ea: 'D', - 0x7fa: 'C', - 0x840: 'R', - 0x841: 'D', - 0x842: 'D', - 0x843: 'D', - 0x844: 'D', - 0x845: 'D', - 0x846: 'R', - 0x847: 'D', - 0x848: 'D', - 0x849: 'R', - 0x84a: 'D', - 0x84b: 'D', - 0x84c: 'D', - 0x84d: 'D', - 0x84e: 'D', - 0x84f: 'R', - 0x850: 'D', - 0x851: 'D', - 0x852: 'D', - 0x853: 'D', - 0x854: 'R', - 0x855: 'D', - 0x856: 'U', - 0x857: 'U', - 0x858: 'U', - 0x8a0: 'D', - 0x8a2: 'D', - 0x8a3: 'D', - 0x8a4: 'D', - 0x8a5: 'D', - 0x8a6: 'D', - 0x8a7: 'D', - 0x8a8: 'D', - 0x8a9: 'D', - 0x8aa: 'R', - 0x8ab: 'R', - 0x8ac: 'R', - 0x1806: 'U', - 0x1807: 'D', - 0x180a: 'C', - 0x180e: 'U', - 0x1820: 'D', - 0x1821: 'D', - 0x1822: 'D', - 0x1823: 'D', - 0x1824: 'D', - 0x1825: 'D', - 0x1826: 'D', - 0x1827: 'D', - 0x1828: 'D', - 0x1829: 'D', - 0x182a: 'D', - 0x182b: 'D', - 0x182c: 'D', - 0x182d: 'D', - 0x182e: 'D', - 0x182f: 'D', - 0x1830: 'D', - 0x1831: 'D', - 0x1832: 'D', - 0x1833: 'D', - 0x1834: 'D', - 0x1835: 'D', - 0x1836: 'D', - 0x1837: 'D', - 0x1838: 'D', - 0x1839: 'D', - 0x183a: 'D', - 0x183b: 'D', - 0x183c: 'D', - 0x183d: 'D', - 0x183e: 'D', - 0x183f: 'D', - 0x1840: 'D', - 0x1841: 'D', - 0x1842: 'D', - 0x1843: 'D', - 0x1844: 'D', - 0x1845: 'D', - 0x1846: 'D', - 0x1847: 'D', - 0x1848: 'D', - 0x1849: 'D', - 0x184a: 'D', - 0x184b: 'D', - 0x184c: 'D', - 0x184d: 'D', - 0x184e: 'D', - 0x184f: 'D', - 0x1850: 'D', - 0x1851: 'D', - 0x1852: 'D', - 0x1853: 'D', - 0x1854: 'D', - 0x1855: 'D', - 0x1856: 'D', - 0x1857: 'D', - 0x1858: 'D', - 0x1859: 'D', - 0x185a: 'D', - 0x185b: 'D', - 0x185c: 'D', - 0x185d: 'D', - 0x185e: 'D', - 0x185f: 'D', - 0x1860: 'D', - 0x1861: 'D', - 0x1862: 'D', - 0x1863: 'D', - 0x1864: 'D', - 0x1865: 'D', - 0x1866: 'D', - 0x1867: 'D', - 0x1868: 'D', - 0x1869: 'D', - 0x186a: 'D', - 0x186b: 'D', - 0x186c: 'D', - 0x186d: 'D', - 0x186e: 'D', - 0x186f: 'D', - 0x1870: 'D', - 0x1871: 'D', - 0x1872: 'D', - 0x1873: 'D', - 0x1874: 'D', - 0x1875: 'D', - 0x1876: 'D', - 0x1877: 'D', - 0x1880: 'U', - 0x1881: 'U', - 0x1882: 'U', - 0x1883: 'U', - 0x1884: 'U', - 0x1885: 'U', - 0x1886: 'U', - 0x1887: 'D', - 0x1888: 'D', - 0x1889: 'D', - 0x188a: 'D', - 0x188b: 'D', - 0x188c: 'D', - 0x188d: 'D', - 0x188e: 'D', - 0x188f: 'D', - 0x1890: 'D', - 0x1891: 'D', - 0x1892: 'D', - 0x1893: 'D', - 0x1894: 'D', - 0x1895: 'D', - 0x1896: 'D', - 0x1897: 'D', - 0x1898: 'D', - 0x1899: 'D', - 0x189a: 'D', - 0x189b: 'D', - 0x189c: 'D', - 0x189d: 'D', - 0x189e: 'D', - 0x189f: 'D', - 0x18a0: 'D', - 0x18a1: 'D', - 0x18a2: 'D', - 0x18a3: 'D', - 0x18a4: 'D', - 0x18a5: 'D', - 0x18a6: 'D', - 0x18a7: 'D', - 0x18a8: 'D', - 0x18aa: 'D', - 0x200c: 'U', - 0x200d: 'C', - 0x2066: 'U', - 0x2067: 'U', - 0x2068: 'U', - 0x2069: 'U', - 0xa840: 'D', - 0xa841: 'D', - 0xa842: 'D', - 0xa843: 'D', - 0xa844: 'D', - 0xa845: 'D', - 0xa846: 'D', - 0xa847: 'D', - 0xa848: 'D', - 0xa849: 'D', - 0xa84a: 'D', - 0xa84b: 'D', - 0xa84c: 'D', - 0xa84d: 'D', - 0xa84e: 'D', - 0xa84f: 'D', - 0xa850: 'D', - 0xa851: 'D', - 0xa852: 'D', - 0xa853: 'D', - 0xa854: 'D', - 0xa855: 'D', - 0xa856: 'D', - 0xa857: 'D', - 0xa858: 'D', - 0xa859: 'D', - 0xa85a: 'D', - 0xa85b: 'D', - 0xa85c: 'D', - 0xa85d: 'D', - 0xa85e: 'D', - 0xa85f: 'D', - 0xa860: 'D', - 0xa861: 'D', - 0xa862: 'D', - 0xa863: 'D', - 0xa864: 'D', - 0xa865: 'D', - 0xa866: 'D', - 0xa867: 'D', - 0xa868: 'D', - 0xa869: 'D', - 0xa86a: 'D', - 0xa86b: 'D', - 0xa86c: 'D', - 0xa86d: 'D', - 0xa86e: 'D', - 0xa86f: 'D', - 0xa870: 'D', - 0xa871: 'D', - 0xa872: 'L', - 0xa873: 'U', + 0x600: 85, + 0x601: 85, + 0x602: 85, + 0x603: 85, + 0x604: 85, + 0x608: 85, + 0x60b: 85, + 0x620: 68, + 0x621: 85, + 0x622: 82, + 0x623: 82, + 0x624: 82, + 0x625: 82, + 0x626: 68, + 0x627: 82, + 0x628: 68, + 0x629: 82, + 0x62a: 68, + 0x62b: 68, + 0x62c: 68, + 0x62d: 68, + 0x62e: 68, + 0x62f: 82, + 0x630: 82, + 0x631: 82, + 0x632: 82, + 0x633: 68, + 0x634: 68, + 0x635: 68, + 0x636: 68, + 0x637: 68, + 0x638: 68, + 0x639: 68, + 0x63a: 68, + 0x63b: 68, + 0x63c: 68, + 0x63d: 68, + 0x63e: 68, + 0x63f: 68, + 0x640: 67, + 0x641: 68, + 0x642: 68, + 0x643: 68, + 0x644: 68, + 0x645: 68, + 0x646: 68, + 0x647: 68, + 0x648: 82, + 0x649: 68, + 0x64a: 68, + 0x66e: 68, + 0x66f: 68, + 0x671: 82, + 0x672: 82, + 0x673: 82, + 0x674: 85, + 0x675: 82, + 0x676: 82, + 0x677: 82, + 0x678: 68, + 0x679: 68, + 0x67a: 68, + 0x67b: 68, + 0x67c: 68, + 0x67d: 68, + 0x67e: 68, + 0x67f: 68, + 0x680: 68, + 0x681: 68, + 0x682: 68, + 0x683: 68, + 0x684: 68, + 0x685: 68, + 0x686: 68, + 0x687: 68, + 0x688: 82, + 0x689: 82, + 0x68a: 82, + 0x68b: 82, + 0x68c: 82, + 0x68d: 82, + 0x68e: 82, + 0x68f: 82, + 0x690: 82, + 0x691: 82, + 0x692: 82, + 0x693: 82, + 0x694: 82, + 0x695: 82, + 0x696: 82, + 0x697: 82, + 0x698: 82, + 0x699: 82, + 0x69a: 68, + 0x69b: 68, + 0x69c: 68, + 0x69d: 68, + 0x69e: 68, + 0x69f: 68, + 0x6a0: 68, + 0x6a1: 68, + 0x6a2: 68, + 0x6a3: 68, + 0x6a4: 68, + 0x6a5: 68, + 0x6a6: 68, + 0x6a7: 68, + 0x6a8: 68, + 0x6a9: 68, + 0x6aa: 68, + 0x6ab: 68, + 0x6ac: 68, + 0x6ad: 68, + 0x6ae: 68, + 0x6af: 68, + 0x6b0: 68, + 0x6b1: 68, + 0x6b2: 68, + 0x6b3: 68, + 0x6b4: 68, + 0x6b5: 68, + 0x6b6: 68, + 0x6b7: 68, + 0x6b8: 68, + 0x6b9: 68, + 0x6ba: 68, + 0x6bb: 68, + 0x6bc: 68, + 0x6bd: 68, + 0x6be: 68, + 0x6bf: 68, + 0x6c0: 82, + 0x6c1: 68, + 0x6c2: 68, + 0x6c3: 82, + 0x6c4: 82, + 0x6c5: 82, + 0x6c6: 82, + 0x6c7: 82, + 0x6c8: 82, + 0x6c9: 82, + 0x6ca: 82, + 0x6cb: 82, + 0x6cc: 68, + 0x6cd: 82, + 0x6ce: 68, + 0x6cf: 82, + 0x6d0: 68, + 0x6d1: 68, + 0x6d2: 82, + 0x6d3: 82, + 0x6d5: 82, + 0x6dd: 85, + 0x6ee: 82, + 0x6ef: 82, + 0x6fa: 68, + 0x6fb: 68, + 0x6fc: 68, + 0x6ff: 68, + 0x710: 82, + 0x712: 68, + 0x713: 68, + 0x714: 68, + 0x715: 82, + 0x716: 82, + 0x717: 82, + 0x718: 82, + 0x719: 82, + 0x71a: 68, + 0x71b: 68, + 0x71c: 68, + 0x71d: 68, + 0x71e: 82, + 0x71f: 68, + 0x720: 68, + 0x721: 68, + 0x722: 68, + 0x723: 68, + 0x724: 68, + 0x725: 68, + 0x726: 68, + 0x727: 68, + 0x728: 82, + 0x729: 68, + 0x72a: 82, + 0x72b: 68, + 0x72c: 82, + 0x72d: 68, + 0x72e: 68, + 0x72f: 82, + 0x74d: 82, + 0x74e: 68, + 0x74f: 68, + 0x750: 68, + 0x751: 68, + 0x752: 68, + 0x753: 68, + 0x754: 68, + 0x755: 68, + 0x756: 68, + 0x757: 68, + 0x758: 68, + 0x759: 82, + 0x75a: 82, + 0x75b: 82, + 0x75c: 68, + 0x75d: 68, + 0x75e: 68, + 0x75f: 68, + 0x760: 68, + 0x761: 68, + 0x762: 68, + 0x763: 68, + 0x764: 68, + 0x765: 68, + 0x766: 68, + 0x767: 68, + 0x768: 68, + 0x769: 68, + 0x76a: 68, + 0x76b: 82, + 0x76c: 82, + 0x76d: 68, + 0x76e: 68, + 0x76f: 68, + 0x770: 68, + 0x771: 82, + 0x772: 68, + 0x773: 82, + 0x774: 82, + 0x775: 68, + 0x776: 68, + 0x777: 68, + 0x778: 82, + 0x779: 82, + 0x77a: 68, + 0x77b: 68, + 0x77c: 68, + 0x77d: 68, + 0x77e: 68, + 0x77f: 68, + 0x7ca: 68, + 0x7cb: 68, + 0x7cc: 68, + 0x7cd: 68, + 0x7ce: 68, + 0x7cf: 68, + 0x7d0: 68, + 0x7d1: 68, + 0x7d2: 68, + 0x7d3: 68, + 0x7d4: 68, + 0x7d5: 68, + 0x7d6: 68, + 0x7d7: 68, + 0x7d8: 68, + 0x7d9: 68, + 0x7da: 68, + 0x7db: 68, + 0x7dc: 68, + 0x7dd: 68, + 0x7de: 68, + 0x7df: 68, + 0x7e0: 68, + 0x7e1: 68, + 0x7e2: 68, + 0x7e3: 68, + 0x7e4: 68, + 0x7e5: 68, + 0x7e6: 68, + 0x7e7: 68, + 0x7e8: 68, + 0x7e9: 68, + 0x7ea: 68, + 0x7fa: 67, + 0x840: 82, + 0x841: 68, + 0x842: 68, + 0x843: 68, + 0x844: 68, + 0x845: 68, + 0x846: 82, + 0x847: 68, + 0x848: 68, + 0x849: 82, + 0x84a: 68, + 0x84b: 68, + 0x84c: 68, + 0x84d: 68, + 0x84e: 68, + 0x84f: 82, + 0x850: 68, + 0x851: 68, + 0x852: 68, + 0x853: 68, + 0x854: 82, + 0x855: 68, + 0x856: 85, + 0x857: 85, + 0x858: 85, + 0x8a0: 68, + 0x8a2: 68, + 0x8a3: 68, + 0x8a4: 68, + 0x8a5: 68, + 0x8a6: 68, + 0x8a7: 68, + 0x8a8: 68, + 0x8a9: 68, + 0x8aa: 82, + 0x8ab: 82, + 0x8ac: 82, + 0x1806: 85, + 0x1807: 68, + 0x180a: 67, + 0x180e: 85, + 0x1820: 68, + 0x1821: 68, + 0x1822: 68, + 0x1823: 68, + 0x1824: 68, + 0x1825: 68, + 0x1826: 68, + 0x1827: 68, + 0x1828: 68, + 0x1829: 68, + 0x182a: 68, + 0x182b: 68, + 0x182c: 68, + 0x182d: 68, + 0x182e: 68, + 0x182f: 68, + 0x1830: 68, + 0x1831: 68, + 0x1832: 68, + 0x1833: 68, + 0x1834: 68, + 0x1835: 68, + 0x1836: 68, + 0x1837: 68, + 0x1838: 68, + 0x1839: 68, + 0x183a: 68, + 0x183b: 68, + 0x183c: 68, + 0x183d: 68, + 0x183e: 68, + 0x183f: 68, + 0x1840: 68, + 0x1841: 68, + 0x1842: 68, + 0x1843: 68, + 0x1844: 68, + 0x1845: 68, + 0x1846: 68, + 0x1847: 68, + 0x1848: 68, + 0x1849: 68, + 0x184a: 68, + 0x184b: 68, + 0x184c: 68, + 0x184d: 68, + 0x184e: 68, + 0x184f: 68, + 0x1850: 68, + 0x1851: 68, + 0x1852: 68, + 0x1853: 68, + 0x1854: 68, + 0x1855: 68, + 0x1856: 68, + 0x1857: 68, + 0x1858: 68, + 0x1859: 68, + 0x185a: 68, + 0x185b: 68, + 0x185c: 68, + 0x185d: 68, + 0x185e: 68, + 0x185f: 68, + 0x1860: 68, + 0x1861: 68, + 0x1862: 68, + 0x1863: 68, + 0x1864: 68, + 0x1865: 68, + 0x1866: 68, + 0x1867: 68, + 0x1868: 68, + 0x1869: 68, + 0x186a: 68, + 0x186b: 68, + 0x186c: 68, + 0x186d: 68, + 0x186e: 68, + 0x186f: 68, + 0x1870: 68, + 0x1871: 68, + 0x1872: 68, + 0x1873: 68, + 0x1874: 68, + 0x1875: 68, + 0x1876: 68, + 0x1877: 68, + 0x1880: 85, + 0x1881: 85, + 0x1882: 85, + 0x1883: 85, + 0x1884: 85, + 0x1885: 85, + 0x1886: 85, + 0x1887: 68, + 0x1888: 68, + 0x1889: 68, + 0x188a: 68, + 0x188b: 68, + 0x188c: 68, + 0x188d: 68, + 0x188e: 68, + 0x188f: 68, + 0x1890: 68, + 0x1891: 68, + 0x1892: 68, + 0x1893: 68, + 0x1894: 68, + 0x1895: 68, + 0x1896: 68, + 0x1897: 68, + 0x1898: 68, + 0x1899: 68, + 0x189a: 68, + 0x189b: 68, + 0x189c: 68, + 0x189d: 68, + 0x189e: 68, + 0x189f: 68, + 0x18a0: 68, + 0x18a1: 68, + 0x18a2: 68, + 0x18a3: 68, + 0x18a4: 68, + 0x18a5: 68, + 0x18a6: 68, + 0x18a7: 68, + 0x18a8: 68, + 0x18aa: 68, + 0x200c: 85, + 0x200d: 67, + 0x2066: 85, + 0x2067: 85, + 0x2068: 85, + 0x2069: 85, + 0xa840: 68, + 0xa841: 68, + 0xa842: 68, + 0xa843: 68, + 0xa844: 68, + 0xa845: 68, + 0xa846: 68, + 0xa847: 68, + 0xa848: 68, + 0xa849: 68, + 0xa84a: 68, + 0xa84b: 68, + 0xa84c: 68, + 0xa84d: 68, + 0xa84e: 68, + 0xa84f: 68, + 0xa850: 68, + 0xa851: 68, + 0xa852: 68, + 0xa853: 68, + 0xa854: 68, + 0xa855: 68, + 0xa856: 68, + 0xa857: 68, + 0xa858: 68, + 0xa859: 68, + 0xa85a: 68, + 0xa85b: 68, + 0xa85c: 68, + 0xa85d: 68, + 0xa85e: 68, + 0xa85f: 68, + 0xa860: 68, + 0xa861: 68, + 0xa862: 68, + 0xa863: 68, + 0xa864: 68, + 0xa865: 68, + 0xa866: 68, + 0xa867: 68, + 0xa868: 68, + 0xa869: 68, + 0xa86a: 68, + 0xa86b: 68, + 0xa86c: 68, + 0xa86d: 68, + 0xa86e: 68, + 0xa86f: 68, + 0xa870: 68, + 0xa871: 68, + 0xa872: 76, + 0xa873: 85, } codepoint_classes = { 'PVALID': ( - (0x2d, 0x2e), - (0x30, 0x3a), - (0x61, 0x7b), - (0xdf, 0xf7), - (0xf8, 0x100), - (0x101, 0x102), - (0x103, 0x104), - (0x105, 0x106), - (0x107, 0x108), - (0x109, 0x10a), - (0x10b, 0x10c), - (0x10d, 0x10e), - (0x10f, 0x110), - (0x111, 0x112), - (0x113, 0x114), - (0x115, 0x116), - (0x117, 0x118), - (0x119, 0x11a), - (0x11b, 0x11c), - (0x11d, 0x11e), - (0x11f, 0x120), - (0x121, 0x122), - (0x123, 0x124), - (0x125, 0x126), - (0x127, 0x128), - (0x129, 0x12a), - (0x12b, 0x12c), - (0x12d, 0x12e), - (0x12f, 0x130), - (0x131, 0x132), - (0x135, 0x136), - (0x137, 0x139), - (0x13a, 0x13b), - (0x13c, 0x13d), - (0x13e, 0x13f), - (0x142, 0x143), - (0x144, 0x145), - (0x146, 0x147), - (0x148, 0x149), - (0x14b, 0x14c), - (0x14d, 0x14e), - (0x14f, 0x150), - (0x151, 0x152), - (0x153, 0x154), - (0x155, 0x156), - (0x157, 0x158), - (0x159, 0x15a), - (0x15b, 0x15c), - (0x15d, 0x15e), - (0x15f, 0x160), - (0x161, 0x162), - (0x163, 0x164), - (0x165, 0x166), - (0x167, 0x168), - (0x169, 0x16a), - (0x16b, 0x16c), - (0x16d, 0x16e), - (0x16f, 0x170), - (0x171, 0x172), - (0x173, 0x174), - (0x175, 0x176), - (0x177, 0x178), - (0x17a, 0x17b), - (0x17c, 0x17d), - (0x17e, 0x17f), - (0x180, 0x181), - (0x183, 0x184), - (0x185, 0x186), - (0x188, 0x189), - (0x18c, 0x18e), - (0x192, 0x193), - (0x195, 0x196), - (0x199, 0x19c), - (0x19e, 0x19f), - (0x1a1, 0x1a2), - (0x1a3, 0x1a4), - (0x1a5, 0x1a6), - (0x1a8, 0x1a9), - (0x1aa, 0x1ac), - (0x1ad, 0x1ae), - (0x1b0, 0x1b1), - (0x1b4, 0x1b5), - (0x1b6, 0x1b7), - (0x1b9, 0x1bc), - (0x1bd, 0x1c4), - (0x1ce, 0x1cf), - (0x1d0, 0x1d1), - (0x1d2, 0x1d3), - (0x1d4, 0x1d5), - (0x1d6, 0x1d7), - (0x1d8, 0x1d9), - (0x1da, 0x1db), - (0x1dc, 0x1de), - (0x1df, 0x1e0), - (0x1e1, 0x1e2), - (0x1e3, 0x1e4), - (0x1e5, 0x1e6), - (0x1e7, 0x1e8), - (0x1e9, 0x1ea), - (0x1eb, 0x1ec), - (0x1ed, 0x1ee), - (0x1ef, 0x1f1), - (0x1f5, 0x1f6), - (0x1f9, 0x1fa), - (0x1fb, 0x1fc), - (0x1fd, 0x1fe), - (0x1ff, 0x200), - (0x201, 0x202), - (0x203, 0x204), - (0x205, 0x206), - (0x207, 0x208), - (0x209, 0x20a), - (0x20b, 0x20c), - (0x20d, 0x20e), - (0x20f, 0x210), - (0x211, 0x212), - (0x213, 0x214), - (0x215, 0x216), - (0x217, 0x218), - (0x219, 0x21a), - (0x21b, 0x21c), - (0x21d, 0x21e), - (0x21f, 0x220), - (0x221, 0x222), - (0x223, 0x224), - (0x225, 0x226), - (0x227, 0x228), - (0x229, 0x22a), - (0x22b, 0x22c), - (0x22d, 0x22e), - (0x22f, 0x230), - (0x231, 0x232), - (0x233, 0x23a), - (0x23c, 0x23d), - (0x23f, 0x241), - (0x242, 0x243), - (0x247, 0x248), - (0x249, 0x24a), - (0x24b, 0x24c), - (0x24d, 0x24e), - (0x24f, 0x2b0), - (0x2b9, 0x2c2), - (0x2c6, 0x2d2), - (0x2ec, 0x2ed), - (0x2ee, 0x2ef), - (0x300, 0x340), - (0x342, 0x343), - (0x346, 0x34f), - (0x350, 0x370), - (0x371, 0x372), - (0x373, 0x374), - (0x377, 0x378), - (0x37b, 0x37e), - (0x390, 0x391), - (0x3ac, 0x3cf), - (0x3d7, 0x3d8), - (0x3d9, 0x3da), - (0x3db, 0x3dc), - (0x3dd, 0x3de), - (0x3df, 0x3e0), - (0x3e1, 0x3e2), - (0x3e3, 0x3e4), - (0x3e5, 0x3e6), - (0x3e7, 0x3e8), - (0x3e9, 0x3ea), - (0x3eb, 0x3ec), - (0x3ed, 0x3ee), - (0x3ef, 0x3f0), - (0x3f3, 0x3f4), - (0x3f8, 0x3f9), - (0x3fb, 0x3fd), - (0x430, 0x460), - (0x461, 0x462), - (0x463, 0x464), - (0x465, 0x466), - (0x467, 0x468), - (0x469, 0x46a), - (0x46b, 0x46c), - (0x46d, 0x46e), - (0x46f, 0x470), - (0x471, 0x472), - (0x473, 0x474), - (0x475, 0x476), - (0x477, 0x478), - (0x479, 0x47a), - (0x47b, 0x47c), - (0x47d, 0x47e), - (0x47f, 0x480), - (0x481, 0x482), - (0x483, 0x488), - (0x48b, 0x48c), - (0x48d, 0x48e), - (0x48f, 0x490), - (0x491, 0x492), - (0x493, 0x494), - (0x495, 0x496), - (0x497, 0x498), - (0x499, 0x49a), - (0x49b, 0x49c), - (0x49d, 0x49e), - (0x49f, 0x4a0), - (0x4a1, 0x4a2), - (0x4a3, 0x4a4), - (0x4a5, 0x4a6), - (0x4a7, 0x4a8), - (0x4a9, 0x4aa), - (0x4ab, 0x4ac), - (0x4ad, 0x4ae), - (0x4af, 0x4b0), - (0x4b1, 0x4b2), - (0x4b3, 0x4b4), - (0x4b5, 0x4b6), - (0x4b7, 0x4b8), - (0x4b9, 0x4ba), - (0x4bb, 0x4bc), - (0x4bd, 0x4be), - (0x4bf, 0x4c0), - (0x4c2, 0x4c3), - (0x4c4, 0x4c5), - (0x4c6, 0x4c7), - (0x4c8, 0x4c9), - (0x4ca, 0x4cb), - (0x4cc, 0x4cd), - (0x4ce, 0x4d0), - (0x4d1, 0x4d2), - (0x4d3, 0x4d4), - (0x4d5, 0x4d6), - (0x4d7, 0x4d8), - (0x4d9, 0x4da), - (0x4db, 0x4dc), - (0x4dd, 0x4de), - (0x4df, 0x4e0), - (0x4e1, 0x4e2), - (0x4e3, 0x4e4), - (0x4e5, 0x4e6), - (0x4e7, 0x4e8), - (0x4e9, 0x4ea), - (0x4eb, 0x4ec), - (0x4ed, 0x4ee), - (0x4ef, 0x4f0), - (0x4f1, 0x4f2), - (0x4f3, 0x4f4), - (0x4f5, 0x4f6), - (0x4f7, 0x4f8), - (0x4f9, 0x4fa), - (0x4fb, 0x4fc), - (0x4fd, 0x4fe), - (0x4ff, 0x500), - (0x501, 0x502), - (0x503, 0x504), - (0x505, 0x506), - (0x507, 0x508), - (0x509, 0x50a), - (0x50b, 0x50c), - (0x50d, 0x50e), - (0x50f, 0x510), - (0x511, 0x512), - (0x513, 0x514), - (0x515, 0x516), - (0x517, 0x518), - (0x519, 0x51a), - (0x51b, 0x51c), - (0x51d, 0x51e), - (0x51f, 0x520), - (0x521, 0x522), - (0x523, 0x524), - (0x525, 0x526), - (0x527, 0x528), - (0x559, 0x55a), - (0x561, 0x587), - (0x591, 0x5be), - (0x5bf, 0x5c0), - (0x5c1, 0x5c3), - (0x5c4, 0x5c6), - (0x5c7, 0x5c8), - (0x5d0, 0x5eb), - (0x5f0, 0x5f3), - (0x610, 0x61b), - (0x620, 0x640), - (0x641, 0x660), - (0x66e, 0x675), - (0x679, 0x6d4), - (0x6d5, 0x6dd), - (0x6df, 0x6e9), - (0x6ea, 0x6f0), - (0x6fa, 0x700), - (0x710, 0x74b), - (0x74d, 0x7b2), - (0x7c0, 0x7f6), - (0x800, 0x82e), - (0x840, 0x85c), - (0x8a0, 0x8a1), - (0x8a2, 0x8ad), - (0x8e4, 0x8ff), - (0x900, 0x958), - (0x960, 0x964), - (0x966, 0x970), - (0x971, 0x978), - (0x979, 0x980), - (0x981, 0x984), - (0x985, 0x98d), - (0x98f, 0x991), - (0x993, 0x9a9), - (0x9aa, 0x9b1), - (0x9b2, 0x9b3), - (0x9b6, 0x9ba), - (0x9bc, 0x9c5), - (0x9c7, 0x9c9), - (0x9cb, 0x9cf), - (0x9d7, 0x9d8), - (0x9e0, 0x9e4), - (0x9e6, 0x9f2), - (0xa01, 0xa04), - (0xa05, 0xa0b), - (0xa0f, 0xa11), - (0xa13, 0xa29), - (0xa2a, 0xa31), - (0xa32, 0xa33), - (0xa35, 0xa36), - (0xa38, 0xa3a), - (0xa3c, 0xa3d), - (0xa3e, 0xa43), - (0xa47, 0xa49), - (0xa4b, 0xa4e), - (0xa51, 0xa52), - (0xa5c, 0xa5d), - (0xa66, 0xa76), - (0xa81, 0xa84), - (0xa85, 0xa8e), - (0xa8f, 0xa92), - (0xa93, 0xaa9), - (0xaaa, 0xab1), - (0xab2, 0xab4), - (0xab5, 0xaba), - (0xabc, 0xac6), - (0xac7, 0xaca), - (0xacb, 0xace), - (0xad0, 0xad1), - (0xae0, 0xae4), - (0xae6, 0xaf0), - (0xb01, 0xb04), - (0xb05, 0xb0d), - (0xb0f, 0xb11), - (0xb13, 0xb29), - (0xb2a, 0xb31), - (0xb32, 0xb34), - (0xb35, 0xb3a), - (0xb3c, 0xb45), - (0xb47, 0xb49), - (0xb4b, 0xb4e), - (0xb56, 0xb58), - (0xb5f, 0xb64), - (0xb66, 0xb70), - (0xb71, 0xb72), - (0xb82, 0xb84), - (0xb85, 0xb8b), - (0xb8e, 0xb91), - (0xb92, 0xb96), - (0xb99, 0xb9b), - (0xb9c, 0xb9d), - (0xb9e, 0xba0), - (0xba3, 0xba5), - (0xba8, 0xbab), - (0xbae, 0xbba), - (0xbbe, 0xbc3), - (0xbc6, 0xbc9), - (0xbca, 0xbce), - (0xbd0, 0xbd1), - (0xbd7, 0xbd8), - (0xbe6, 0xbf0), - (0xc01, 0xc04), - (0xc05, 0xc0d), - (0xc0e, 0xc11), - (0xc12, 0xc29), - (0xc2a, 0xc34), - (0xc35, 0xc3a), - (0xc3d, 0xc45), - (0xc46, 0xc49), - (0xc4a, 0xc4e), - (0xc55, 0xc57), - (0xc58, 0xc5a), - (0xc60, 0xc64), - (0xc66, 0xc70), - (0xc82, 0xc84), - (0xc85, 0xc8d), - (0xc8e, 0xc91), - (0xc92, 0xca9), - (0xcaa, 0xcb4), - (0xcb5, 0xcba), - (0xcbc, 0xcc5), - (0xcc6, 0xcc9), - (0xcca, 0xcce), - (0xcd5, 0xcd7), - (0xcde, 0xcdf), - (0xce0, 0xce4), - (0xce6, 0xcf0), - (0xcf1, 0xcf3), - (0xd02, 0xd04), - (0xd05, 0xd0d), - (0xd0e, 0xd11), - (0xd12, 0xd3b), - (0xd3d, 0xd45), - (0xd46, 0xd49), - (0xd4a, 0xd4f), - (0xd57, 0xd58), - (0xd60, 0xd64), - (0xd66, 0xd70), - (0xd7a, 0xd80), - (0xd82, 0xd84), - (0xd85, 0xd97), - (0xd9a, 0xdb2), - (0xdb3, 0xdbc), - (0xdbd, 0xdbe), - (0xdc0, 0xdc7), - (0xdca, 0xdcb), - (0xdcf, 0xdd5), - (0xdd6, 0xdd7), - (0xdd8, 0xde0), - (0xdf2, 0xdf4), - (0xe01, 0xe33), - (0xe34, 0xe3b), - (0xe40, 0xe4f), - (0xe50, 0xe5a), - (0xe81, 0xe83), - (0xe84, 0xe85), - (0xe87, 0xe89), - (0xe8a, 0xe8b), - (0xe8d, 0xe8e), - (0xe94, 0xe98), - (0xe99, 0xea0), - (0xea1, 0xea4), - (0xea5, 0xea6), - (0xea7, 0xea8), - (0xeaa, 0xeac), - (0xead, 0xeb3), - (0xeb4, 0xeba), - (0xebb, 0xebe), - (0xec0, 0xec5), - (0xec6, 0xec7), - (0xec8, 0xece), - (0xed0, 0xeda), - (0xede, 0xee0), - (0xf00, 0xf01), - (0xf0b, 0xf0c), - (0xf18, 0xf1a), - (0xf20, 0xf2a), - (0xf35, 0xf36), - (0xf37, 0xf38), - (0xf39, 0xf3a), - (0xf3e, 0xf43), - (0xf44, 0xf48), - (0xf49, 0xf4d), - (0xf4e, 0xf52), - (0xf53, 0xf57), - (0xf58, 0xf5c), - (0xf5d, 0xf69), - (0xf6a, 0xf6d), - (0xf71, 0xf73), - (0xf74, 0xf75), - (0xf7a, 0xf81), - (0xf82, 0xf85), - (0xf86, 0xf93), - (0xf94, 0xf98), - (0xf99, 0xf9d), - (0xf9e, 0xfa2), - (0xfa3, 0xfa7), - (0xfa8, 0xfac), - (0xfad, 0xfb9), - (0xfba, 0xfbd), - (0xfc6, 0xfc7), - (0x1000, 0x104a), - (0x1050, 0x109e), - (0x10d0, 0x10fb), - (0x10fd, 0x1100), - (0x1200, 0x1249), - (0x124a, 0x124e), - (0x1250, 0x1257), - (0x1258, 0x1259), - (0x125a, 0x125e), - (0x1260, 0x1289), - (0x128a, 0x128e), - (0x1290, 0x12b1), - (0x12b2, 0x12b6), - (0x12b8, 0x12bf), - (0x12c0, 0x12c1), - (0x12c2, 0x12c6), - (0x12c8, 0x12d7), - (0x12d8, 0x1311), - (0x1312, 0x1316), - (0x1318, 0x135b), - (0x135d, 0x1360), - (0x1380, 0x1390), - (0x13a0, 0x13f5), - (0x1401, 0x166d), - (0x166f, 0x1680), - (0x1681, 0x169b), - (0x16a0, 0x16eb), - (0x1700, 0x170d), - (0x170e, 0x1715), - (0x1720, 0x1735), - (0x1740, 0x1754), - (0x1760, 0x176d), - (0x176e, 0x1771), - (0x1772, 0x1774), - (0x1780, 0x17b4), - (0x17b6, 0x17d4), - (0x17d7, 0x17d8), - (0x17dc, 0x17de), - (0x17e0, 0x17ea), - (0x1810, 0x181a), - (0x1820, 0x1878), - (0x1880, 0x18ab), - (0x18b0, 0x18f6), - (0x1900, 0x191d), - (0x1920, 0x192c), - (0x1930, 0x193c), - (0x1946, 0x196e), - (0x1970, 0x1975), - (0x1980, 0x19ac), - (0x19b0, 0x19ca), - (0x19d0, 0x19da), - (0x1a00, 0x1a1c), - (0x1a20, 0x1a5f), - (0x1a60, 0x1a7d), - (0x1a7f, 0x1a8a), - (0x1a90, 0x1a9a), - (0x1aa7, 0x1aa8), - (0x1b00, 0x1b4c), - (0x1b50, 0x1b5a), - (0x1b6b, 0x1b74), - (0x1b80, 0x1bf4), - (0x1c00, 0x1c38), - (0x1c40, 0x1c4a), - (0x1c4d, 0x1c7e), - (0x1cd0, 0x1cd3), - (0x1cd4, 0x1cf7), - (0x1d00, 0x1d2c), - (0x1d2f, 0x1d30), - (0x1d3b, 0x1d3c), - (0x1d4e, 0x1d4f), - (0x1d6b, 0x1d78), - (0x1d79, 0x1d9b), - (0x1dc0, 0x1de7), - (0x1dfc, 0x1e00), - (0x1e01, 0x1e02), - (0x1e03, 0x1e04), - (0x1e05, 0x1e06), - (0x1e07, 0x1e08), - (0x1e09, 0x1e0a), - (0x1e0b, 0x1e0c), - (0x1e0d, 0x1e0e), - (0x1e0f, 0x1e10), - (0x1e11, 0x1e12), - (0x1e13, 0x1e14), - (0x1e15, 0x1e16), - (0x1e17, 0x1e18), - (0x1e19, 0x1e1a), - (0x1e1b, 0x1e1c), - (0x1e1d, 0x1e1e), - (0x1e1f, 0x1e20), - (0x1e21, 0x1e22), - (0x1e23, 0x1e24), - (0x1e25, 0x1e26), - (0x1e27, 0x1e28), - (0x1e29, 0x1e2a), - (0x1e2b, 0x1e2c), - (0x1e2d, 0x1e2e), - (0x1e2f, 0x1e30), - (0x1e31, 0x1e32), - (0x1e33, 0x1e34), - (0x1e35, 0x1e36), - (0x1e37, 0x1e38), - (0x1e39, 0x1e3a), - (0x1e3b, 0x1e3c), - (0x1e3d, 0x1e3e), - (0x1e3f, 0x1e40), - (0x1e41, 0x1e42), - (0x1e43, 0x1e44), - (0x1e45, 0x1e46), - (0x1e47, 0x1e48), - (0x1e49, 0x1e4a), - (0x1e4b, 0x1e4c), - (0x1e4d, 0x1e4e), - (0x1e4f, 0x1e50), - (0x1e51, 0x1e52), - (0x1e53, 0x1e54), - (0x1e55, 0x1e56), - (0x1e57, 0x1e58), - (0x1e59, 0x1e5a), - (0x1e5b, 0x1e5c), - (0x1e5d, 0x1e5e), - (0x1e5f, 0x1e60), - (0x1e61, 0x1e62), - (0x1e63, 0x1e64), - (0x1e65, 0x1e66), - (0x1e67, 0x1e68), - (0x1e69, 0x1e6a), - (0x1e6b, 0x1e6c), - (0x1e6d, 0x1e6e), - (0x1e6f, 0x1e70), - (0x1e71, 0x1e72), - (0x1e73, 0x1e74), - (0x1e75, 0x1e76), - (0x1e77, 0x1e78), - (0x1e79, 0x1e7a), - (0x1e7b, 0x1e7c), - (0x1e7d, 0x1e7e), - (0x1e7f, 0x1e80), - (0x1e81, 0x1e82), - (0x1e83, 0x1e84), - (0x1e85, 0x1e86), - (0x1e87, 0x1e88), - (0x1e89, 0x1e8a), - (0x1e8b, 0x1e8c), - (0x1e8d, 0x1e8e), - (0x1e8f, 0x1e90), - (0x1e91, 0x1e92), - (0x1e93, 0x1e94), - (0x1e95, 0x1e9a), - (0x1e9c, 0x1e9e), - (0x1e9f, 0x1ea0), - (0x1ea1, 0x1ea2), - (0x1ea3, 0x1ea4), - (0x1ea5, 0x1ea6), - (0x1ea7, 0x1ea8), - (0x1ea9, 0x1eaa), - (0x1eab, 0x1eac), - (0x1ead, 0x1eae), - (0x1eaf, 0x1eb0), - (0x1eb1, 0x1eb2), - (0x1eb3, 0x1eb4), - (0x1eb5, 0x1eb6), - (0x1eb7, 0x1eb8), - (0x1eb9, 0x1eba), - (0x1ebb, 0x1ebc), - (0x1ebd, 0x1ebe), - (0x1ebf, 0x1ec0), - (0x1ec1, 0x1ec2), - (0x1ec3, 0x1ec4), - (0x1ec5, 0x1ec6), - (0x1ec7, 0x1ec8), - (0x1ec9, 0x1eca), - (0x1ecb, 0x1ecc), - (0x1ecd, 0x1ece), - (0x1ecf, 0x1ed0), - (0x1ed1, 0x1ed2), - (0x1ed3, 0x1ed4), - (0x1ed5, 0x1ed6), - (0x1ed7, 0x1ed8), - (0x1ed9, 0x1eda), - (0x1edb, 0x1edc), - (0x1edd, 0x1ede), - (0x1edf, 0x1ee0), - (0x1ee1, 0x1ee2), - (0x1ee3, 0x1ee4), - (0x1ee5, 0x1ee6), - (0x1ee7, 0x1ee8), - (0x1ee9, 0x1eea), - (0x1eeb, 0x1eec), - (0x1eed, 0x1eee), - (0x1eef, 0x1ef0), - (0x1ef1, 0x1ef2), - (0x1ef3, 0x1ef4), - (0x1ef5, 0x1ef6), - (0x1ef7, 0x1ef8), - (0x1ef9, 0x1efa), - (0x1efb, 0x1efc), - (0x1efd, 0x1efe), - (0x1eff, 0x1f08), - (0x1f10, 0x1f16), - (0x1f20, 0x1f28), - (0x1f30, 0x1f38), - (0x1f40, 0x1f46), - (0x1f50, 0x1f58), - (0x1f60, 0x1f68), - (0x1f70, 0x1f71), - (0x1f72, 0x1f73), - (0x1f74, 0x1f75), - (0x1f76, 0x1f77), - (0x1f78, 0x1f79), - (0x1f7a, 0x1f7b), - (0x1f7c, 0x1f7d), - (0x1fb0, 0x1fb2), - (0x1fb6, 0x1fb7), - (0x1fc6, 0x1fc7), - (0x1fd0, 0x1fd3), - (0x1fd6, 0x1fd8), - (0x1fe0, 0x1fe3), - (0x1fe4, 0x1fe8), - (0x1ff6, 0x1ff7), - (0x214e, 0x214f), - (0x2184, 0x2185), - (0x2c30, 0x2c5f), - (0x2c61, 0x2c62), - (0x2c65, 0x2c67), - (0x2c68, 0x2c69), - (0x2c6a, 0x2c6b), - (0x2c6c, 0x2c6d), - (0x2c71, 0x2c72), - (0x2c73, 0x2c75), - (0x2c76, 0x2c7c), - (0x2c81, 0x2c82), - (0x2c83, 0x2c84), - (0x2c85, 0x2c86), - (0x2c87, 0x2c88), - (0x2c89, 0x2c8a), - (0x2c8b, 0x2c8c), - (0x2c8d, 0x2c8e), - (0x2c8f, 0x2c90), - (0x2c91, 0x2c92), - (0x2c93, 0x2c94), - (0x2c95, 0x2c96), - (0x2c97, 0x2c98), - (0x2c99, 0x2c9a), - (0x2c9b, 0x2c9c), - (0x2c9d, 0x2c9e), - (0x2c9f, 0x2ca0), - (0x2ca1, 0x2ca2), - (0x2ca3, 0x2ca4), - (0x2ca5, 0x2ca6), - (0x2ca7, 0x2ca8), - (0x2ca9, 0x2caa), - (0x2cab, 0x2cac), - (0x2cad, 0x2cae), - (0x2caf, 0x2cb0), - (0x2cb1, 0x2cb2), - (0x2cb3, 0x2cb4), - (0x2cb5, 0x2cb6), - (0x2cb7, 0x2cb8), - (0x2cb9, 0x2cba), - (0x2cbb, 0x2cbc), - (0x2cbd, 0x2cbe), - (0x2cbf, 0x2cc0), - (0x2cc1, 0x2cc2), - (0x2cc3, 0x2cc4), - (0x2cc5, 0x2cc6), - (0x2cc7, 0x2cc8), - (0x2cc9, 0x2cca), - (0x2ccb, 0x2ccc), - (0x2ccd, 0x2cce), - (0x2ccf, 0x2cd0), - (0x2cd1, 0x2cd2), - (0x2cd3, 0x2cd4), - (0x2cd5, 0x2cd6), - (0x2cd7, 0x2cd8), - (0x2cd9, 0x2cda), - (0x2cdb, 0x2cdc), - (0x2cdd, 0x2cde), - (0x2cdf, 0x2ce0), - (0x2ce1, 0x2ce2), - (0x2ce3, 0x2ce5), - (0x2cec, 0x2ced), - (0x2cee, 0x2cf2), - (0x2cf3, 0x2cf4), - (0x2d00, 0x2d26), - (0x2d27, 0x2d28), - (0x2d2d, 0x2d2e), - (0x2d30, 0x2d68), - (0x2d7f, 0x2d97), - (0x2da0, 0x2da7), - (0x2da8, 0x2daf), - (0x2db0, 0x2db7), - (0x2db8, 0x2dbf), - (0x2dc0, 0x2dc7), - (0x2dc8, 0x2dcf), - (0x2dd0, 0x2dd7), - (0x2dd8, 0x2ddf), - (0x2de0, 0x2e00), - (0x2e2f, 0x2e30), - (0x3005, 0x3008), - (0x302a, 0x302e), - (0x303c, 0x303d), - (0x3041, 0x3097), - (0x3099, 0x309b), - (0x309d, 0x309f), - (0x30a1, 0x30fb), - (0x30fc, 0x30ff), - (0x3105, 0x312e), - (0x31a0, 0x31bb), - (0x31f0, 0x3200), - (0x3400, 0x4db6), - (0x4e00, 0x9fcd), - (0xa000, 0xa48d), - (0xa4d0, 0xa4fe), - (0xa500, 0xa60d), - (0xa610, 0xa62c), - (0xa641, 0xa642), - (0xa643, 0xa644), - (0xa645, 0xa646), - (0xa647, 0xa648), - (0xa649, 0xa64a), - (0xa64b, 0xa64c), - (0xa64d, 0xa64e), - (0xa64f, 0xa650), - (0xa651, 0xa652), - (0xa653, 0xa654), - (0xa655, 0xa656), - (0xa657, 0xa658), - (0xa659, 0xa65a), - (0xa65b, 0xa65c), - (0xa65d, 0xa65e), - (0xa65f, 0xa660), - (0xa661, 0xa662), - (0xa663, 0xa664), - (0xa665, 0xa666), - (0xa667, 0xa668), - (0xa669, 0xa66a), - (0xa66b, 0xa66c), - (0xa66d, 0xa670), - (0xa674, 0xa67e), - (0xa67f, 0xa680), - (0xa681, 0xa682), - (0xa683, 0xa684), - (0xa685, 0xa686), - (0xa687, 0xa688), - (0xa689, 0xa68a), - (0xa68b, 0xa68c), - (0xa68d, 0xa68e), - (0xa68f, 0xa690), - (0xa691, 0xa692), - (0xa693, 0xa694), - (0xa695, 0xa696), - (0xa697, 0xa698), - (0xa69f, 0xa6e6), - (0xa6f0, 0xa6f2), - (0xa717, 0xa720), - (0xa723, 0xa724), - (0xa725, 0xa726), - (0xa727, 0xa728), - (0xa729, 0xa72a), - (0xa72b, 0xa72c), - (0xa72d, 0xa72e), - (0xa72f, 0xa732), - (0xa733, 0xa734), - (0xa735, 0xa736), - (0xa737, 0xa738), - (0xa739, 0xa73a), - (0xa73b, 0xa73c), - (0xa73d, 0xa73e), - (0xa73f, 0xa740), - (0xa741, 0xa742), - (0xa743, 0xa744), - (0xa745, 0xa746), - (0xa747, 0xa748), - (0xa749, 0xa74a), - (0xa74b, 0xa74c), - (0xa74d, 0xa74e), - (0xa74f, 0xa750), - (0xa751, 0xa752), - (0xa753, 0xa754), - (0xa755, 0xa756), - (0xa757, 0xa758), - (0xa759, 0xa75a), - (0xa75b, 0xa75c), - (0xa75d, 0xa75e), - (0xa75f, 0xa760), - (0xa761, 0xa762), - (0xa763, 0xa764), - (0xa765, 0xa766), - (0xa767, 0xa768), - (0xa769, 0xa76a), - (0xa76b, 0xa76c), - (0xa76d, 0xa76e), - (0xa76f, 0xa770), - (0xa771, 0xa779), - (0xa77a, 0xa77b), - (0xa77c, 0xa77d), - (0xa77f, 0xa780), - (0xa781, 0xa782), - (0xa783, 0xa784), - (0xa785, 0xa786), - (0xa787, 0xa789), - (0xa78c, 0xa78d), - (0xa78e, 0xa78f), - (0xa791, 0xa792), - (0xa793, 0xa794), - (0xa7a1, 0xa7a2), - (0xa7a3, 0xa7a4), - (0xa7a5, 0xa7a6), - (0xa7a7, 0xa7a8), - (0xa7a9, 0xa7aa), - (0xa7fa, 0xa828), - (0xa840, 0xa874), - (0xa880, 0xa8c5), - (0xa8d0, 0xa8da), - (0xa8e0, 0xa8f8), - (0xa8fb, 0xa8fc), - (0xa900, 0xa92e), - (0xa930, 0xa954), - (0xa980, 0xa9c1), - (0xa9cf, 0xa9da), - (0xaa00, 0xaa37), - (0xaa40, 0xaa4e), - (0xaa50, 0xaa5a), - (0xaa60, 0xaa77), - (0xaa7a, 0xaa7c), - (0xaa80, 0xaac3), - (0xaadb, 0xaade), - (0xaae0, 0xaaf0), - (0xaaf2, 0xaaf7), - (0xab01, 0xab07), - (0xab09, 0xab0f), - (0xab11, 0xab17), - (0xab20, 0xab27), - (0xab28, 0xab2f), - (0xabc0, 0xabeb), - (0xabec, 0xabee), - (0xabf0, 0xabfa), - (0xac00, 0xd7a4), - (0xfa0e, 0xfa10), - (0xfa11, 0xfa12), - (0xfa13, 0xfa15), - (0xfa1f, 0xfa20), - (0xfa21, 0xfa22), - (0xfa23, 0xfa25), - (0xfa27, 0xfa2a), - (0xfb1e, 0xfb1f), - (0xfe20, 0xfe27), - (0xfe73, 0xfe74), - (0x10000, 0x1000c), - (0x1000d, 0x10027), - (0x10028, 0x1003b), - (0x1003c, 0x1003e), - (0x1003f, 0x1004e), - (0x10050, 0x1005e), - (0x10080, 0x100fb), - (0x101fd, 0x101fe), - (0x10280, 0x1029d), - (0x102a0, 0x102d1), - (0x10300, 0x1031f), - (0x10330, 0x10341), - (0x10342, 0x1034a), - (0x10380, 0x1039e), - (0x103a0, 0x103c4), - (0x103c8, 0x103d0), - (0x10428, 0x1049e), - (0x104a0, 0x104aa), - (0x10800, 0x10806), - (0x10808, 0x10809), - (0x1080a, 0x10836), - (0x10837, 0x10839), - (0x1083c, 0x1083d), - (0x1083f, 0x10856), - (0x10900, 0x10916), - (0x10920, 0x1093a), - (0x10980, 0x109b8), - (0x109be, 0x109c0), - (0x10a00, 0x10a04), - (0x10a05, 0x10a07), - (0x10a0c, 0x10a14), - (0x10a15, 0x10a18), - (0x10a19, 0x10a34), - (0x10a38, 0x10a3b), - (0x10a3f, 0x10a40), - (0x10a60, 0x10a7d), - (0x10b00, 0x10b36), - (0x10b40, 0x10b56), - (0x10b60, 0x10b73), - (0x10c00, 0x10c49), - (0x11000, 0x11047), - (0x11066, 0x11070), - (0x11080, 0x110bb), - (0x110d0, 0x110e9), - (0x110f0, 0x110fa), - (0x11100, 0x11135), - (0x11136, 0x11140), - (0x11180, 0x111c5), - (0x111d0, 0x111da), - (0x11680, 0x116b8), - (0x116c0, 0x116ca), - (0x12000, 0x1236f), - (0x13000, 0x1342f), - (0x16800, 0x16a39), - (0x16f00, 0x16f45), - (0x16f50, 0x16f7f), - (0x16f8f, 0x16fa0), - (0x1b000, 0x1b002), - (0x20000, 0x2a6d7), - (0x2a700, 0x2b735), - (0x2b740, 0x2b81e), + 0x2d0000002e, + 0x300000003a, + 0x610000007b, + 0xdf000000f7, + 0xf800000100, + 0x10100000102, + 0x10300000104, + 0x10500000106, + 0x10700000108, + 0x1090000010a, + 0x10b0000010c, + 0x10d0000010e, + 0x10f00000110, + 0x11100000112, + 0x11300000114, + 0x11500000116, + 0x11700000118, + 0x1190000011a, + 0x11b0000011c, + 0x11d0000011e, + 0x11f00000120, + 0x12100000122, + 0x12300000124, + 0x12500000126, + 0x12700000128, + 0x1290000012a, + 0x12b0000012c, + 0x12d0000012e, + 0x12f00000130, + 0x13100000132, + 0x13500000136, + 0x13700000139, + 0x13a0000013b, + 0x13c0000013d, + 0x13e0000013f, + 0x14200000143, + 0x14400000145, + 0x14600000147, + 0x14800000149, + 0x14b0000014c, + 0x14d0000014e, + 0x14f00000150, + 0x15100000152, + 0x15300000154, + 0x15500000156, + 0x15700000158, + 0x1590000015a, + 0x15b0000015c, + 0x15d0000015e, + 0x15f00000160, + 0x16100000162, + 0x16300000164, + 0x16500000166, + 0x16700000168, + 0x1690000016a, + 0x16b0000016c, + 0x16d0000016e, + 0x16f00000170, + 0x17100000172, + 0x17300000174, + 0x17500000176, + 0x17700000178, + 0x17a0000017b, + 0x17c0000017d, + 0x17e0000017f, + 0x18000000181, + 0x18300000184, + 0x18500000186, + 0x18800000189, + 0x18c0000018e, + 0x19200000193, + 0x19500000196, + 0x1990000019c, + 0x19e0000019f, + 0x1a1000001a2, + 0x1a3000001a4, + 0x1a5000001a6, + 0x1a8000001a9, + 0x1aa000001ac, + 0x1ad000001ae, + 0x1b0000001b1, + 0x1b4000001b5, + 0x1b6000001b7, + 0x1b9000001bc, + 0x1bd000001c4, + 0x1ce000001cf, + 0x1d0000001d1, + 0x1d2000001d3, + 0x1d4000001d5, + 0x1d6000001d7, + 0x1d8000001d9, + 0x1da000001db, + 0x1dc000001de, + 0x1df000001e0, + 0x1e1000001e2, + 0x1e3000001e4, + 0x1e5000001e6, + 0x1e7000001e8, + 0x1e9000001ea, + 0x1eb000001ec, + 0x1ed000001ee, + 0x1ef000001f1, + 0x1f5000001f6, + 0x1f9000001fa, + 0x1fb000001fc, + 0x1fd000001fe, + 0x1ff00000200, + 0x20100000202, + 0x20300000204, + 0x20500000206, + 0x20700000208, + 0x2090000020a, + 0x20b0000020c, + 0x20d0000020e, + 0x20f00000210, + 0x21100000212, + 0x21300000214, + 0x21500000216, + 0x21700000218, + 0x2190000021a, + 0x21b0000021c, + 0x21d0000021e, + 0x21f00000220, + 0x22100000222, + 0x22300000224, + 0x22500000226, + 0x22700000228, + 0x2290000022a, + 0x22b0000022c, + 0x22d0000022e, + 0x22f00000230, + 0x23100000232, + 0x2330000023a, + 0x23c0000023d, + 0x23f00000241, + 0x24200000243, + 0x24700000248, + 0x2490000024a, + 0x24b0000024c, + 0x24d0000024e, + 0x24f000002b0, + 0x2b9000002c2, + 0x2c6000002d2, + 0x2ec000002ed, + 0x2ee000002ef, + 0x30000000340, + 0x34200000343, + 0x3460000034f, + 0x35000000370, + 0x37100000372, + 0x37300000374, + 0x37700000378, + 0x37b0000037e, + 0x39000000391, + 0x3ac000003cf, + 0x3d7000003d8, + 0x3d9000003da, + 0x3db000003dc, + 0x3dd000003de, + 0x3df000003e0, + 0x3e1000003e2, + 0x3e3000003e4, + 0x3e5000003e6, + 0x3e7000003e8, + 0x3e9000003ea, + 0x3eb000003ec, + 0x3ed000003ee, + 0x3ef000003f0, + 0x3f3000003f4, + 0x3f8000003f9, + 0x3fb000003fd, + 0x43000000460, + 0x46100000462, + 0x46300000464, + 0x46500000466, + 0x46700000468, + 0x4690000046a, + 0x46b0000046c, + 0x46d0000046e, + 0x46f00000470, + 0x47100000472, + 0x47300000474, + 0x47500000476, + 0x47700000478, + 0x4790000047a, + 0x47b0000047c, + 0x47d0000047e, + 0x47f00000480, + 0x48100000482, + 0x48300000488, + 0x48b0000048c, + 0x48d0000048e, + 0x48f00000490, + 0x49100000492, + 0x49300000494, + 0x49500000496, + 0x49700000498, + 0x4990000049a, + 0x49b0000049c, + 0x49d0000049e, + 0x49f000004a0, + 0x4a1000004a2, + 0x4a3000004a4, + 0x4a5000004a6, + 0x4a7000004a8, + 0x4a9000004aa, + 0x4ab000004ac, + 0x4ad000004ae, + 0x4af000004b0, + 0x4b1000004b2, + 0x4b3000004b4, + 0x4b5000004b6, + 0x4b7000004b8, + 0x4b9000004ba, + 0x4bb000004bc, + 0x4bd000004be, + 0x4bf000004c0, + 0x4c2000004c3, + 0x4c4000004c5, + 0x4c6000004c7, + 0x4c8000004c9, + 0x4ca000004cb, + 0x4cc000004cd, + 0x4ce000004d0, + 0x4d1000004d2, + 0x4d3000004d4, + 0x4d5000004d6, + 0x4d7000004d8, + 0x4d9000004da, + 0x4db000004dc, + 0x4dd000004de, + 0x4df000004e0, + 0x4e1000004e2, + 0x4e3000004e4, + 0x4e5000004e6, + 0x4e7000004e8, + 0x4e9000004ea, + 0x4eb000004ec, + 0x4ed000004ee, + 0x4ef000004f0, + 0x4f1000004f2, + 0x4f3000004f4, + 0x4f5000004f6, + 0x4f7000004f8, + 0x4f9000004fa, + 0x4fb000004fc, + 0x4fd000004fe, + 0x4ff00000500, + 0x50100000502, + 0x50300000504, + 0x50500000506, + 0x50700000508, + 0x5090000050a, + 0x50b0000050c, + 0x50d0000050e, + 0x50f00000510, + 0x51100000512, + 0x51300000514, + 0x51500000516, + 0x51700000518, + 0x5190000051a, + 0x51b0000051c, + 0x51d0000051e, + 0x51f00000520, + 0x52100000522, + 0x52300000524, + 0x52500000526, + 0x52700000528, + 0x5590000055a, + 0x56100000587, + 0x591000005be, + 0x5bf000005c0, + 0x5c1000005c3, + 0x5c4000005c6, + 0x5c7000005c8, + 0x5d0000005eb, + 0x5f0000005f3, + 0x6100000061b, + 0x62000000640, + 0x64100000660, + 0x66e00000675, + 0x679000006d4, + 0x6d5000006dd, + 0x6df000006e9, + 0x6ea000006f0, + 0x6fa00000700, + 0x7100000074b, + 0x74d000007b2, + 0x7c0000007f6, + 0x8000000082e, + 0x8400000085c, + 0x8a0000008a1, + 0x8a2000008ad, + 0x8e4000008ff, + 0x90000000958, + 0x96000000964, + 0x96600000970, + 0x97100000978, + 0x97900000980, + 0x98100000984, + 0x9850000098d, + 0x98f00000991, + 0x993000009a9, + 0x9aa000009b1, + 0x9b2000009b3, + 0x9b6000009ba, + 0x9bc000009c5, + 0x9c7000009c9, + 0x9cb000009cf, + 0x9d7000009d8, + 0x9e0000009e4, + 0x9e6000009f2, + 0xa0100000a04, + 0xa0500000a0b, + 0xa0f00000a11, + 0xa1300000a29, + 0xa2a00000a31, + 0xa3200000a33, + 0xa3500000a36, + 0xa3800000a3a, + 0xa3c00000a3d, + 0xa3e00000a43, + 0xa4700000a49, + 0xa4b00000a4e, + 0xa5100000a52, + 0xa5c00000a5d, + 0xa6600000a76, + 0xa8100000a84, + 0xa8500000a8e, + 0xa8f00000a92, + 0xa9300000aa9, + 0xaaa00000ab1, + 0xab200000ab4, + 0xab500000aba, + 0xabc00000ac6, + 0xac700000aca, + 0xacb00000ace, + 0xad000000ad1, + 0xae000000ae4, + 0xae600000af0, + 0xb0100000b04, + 0xb0500000b0d, + 0xb0f00000b11, + 0xb1300000b29, + 0xb2a00000b31, + 0xb3200000b34, + 0xb3500000b3a, + 0xb3c00000b45, + 0xb4700000b49, + 0xb4b00000b4e, + 0xb5600000b58, + 0xb5f00000b64, + 0xb6600000b70, + 0xb7100000b72, + 0xb8200000b84, + 0xb8500000b8b, + 0xb8e00000b91, + 0xb9200000b96, + 0xb9900000b9b, + 0xb9c00000b9d, + 0xb9e00000ba0, + 0xba300000ba5, + 0xba800000bab, + 0xbae00000bba, + 0xbbe00000bc3, + 0xbc600000bc9, + 0xbca00000bce, + 0xbd000000bd1, + 0xbd700000bd8, + 0xbe600000bf0, + 0xc0100000c04, + 0xc0500000c0d, + 0xc0e00000c11, + 0xc1200000c29, + 0xc2a00000c34, + 0xc3500000c3a, + 0xc3d00000c45, + 0xc4600000c49, + 0xc4a00000c4e, + 0xc5500000c57, + 0xc5800000c5a, + 0xc6000000c64, + 0xc6600000c70, + 0xc8200000c84, + 0xc8500000c8d, + 0xc8e00000c91, + 0xc9200000ca9, + 0xcaa00000cb4, + 0xcb500000cba, + 0xcbc00000cc5, + 0xcc600000cc9, + 0xcca00000cce, + 0xcd500000cd7, + 0xcde00000cdf, + 0xce000000ce4, + 0xce600000cf0, + 0xcf100000cf3, + 0xd0200000d04, + 0xd0500000d0d, + 0xd0e00000d11, + 0xd1200000d3b, + 0xd3d00000d45, + 0xd4600000d49, + 0xd4a00000d4f, + 0xd5700000d58, + 0xd6000000d64, + 0xd6600000d70, + 0xd7a00000d80, + 0xd8200000d84, + 0xd8500000d97, + 0xd9a00000db2, + 0xdb300000dbc, + 0xdbd00000dbe, + 0xdc000000dc7, + 0xdca00000dcb, + 0xdcf00000dd5, + 0xdd600000dd7, + 0xdd800000de0, + 0xdf200000df4, + 0xe0100000e33, + 0xe3400000e3b, + 0xe4000000e4f, + 0xe5000000e5a, + 0xe8100000e83, + 0xe8400000e85, + 0xe8700000e89, + 0xe8a00000e8b, + 0xe8d00000e8e, + 0xe9400000e98, + 0xe9900000ea0, + 0xea100000ea4, + 0xea500000ea6, + 0xea700000ea8, + 0xeaa00000eac, + 0xead00000eb3, + 0xeb400000eba, + 0xebb00000ebe, + 0xec000000ec5, + 0xec600000ec7, + 0xec800000ece, + 0xed000000eda, + 0xede00000ee0, + 0xf0000000f01, + 0xf0b00000f0c, + 0xf1800000f1a, + 0xf2000000f2a, + 0xf3500000f36, + 0xf3700000f38, + 0xf3900000f3a, + 0xf3e00000f43, + 0xf4400000f48, + 0xf4900000f4d, + 0xf4e00000f52, + 0xf5300000f57, + 0xf5800000f5c, + 0xf5d00000f69, + 0xf6a00000f6d, + 0xf7100000f73, + 0xf7400000f75, + 0xf7a00000f81, + 0xf8200000f85, + 0xf8600000f93, + 0xf9400000f98, + 0xf9900000f9d, + 0xf9e00000fa2, + 0xfa300000fa7, + 0xfa800000fac, + 0xfad00000fb9, + 0xfba00000fbd, + 0xfc600000fc7, + 0x10000000104a, + 0x10500000109e, + 0x10d0000010fb, + 0x10fd00001100, + 0x120000001249, + 0x124a0000124e, + 0x125000001257, + 0x125800001259, + 0x125a0000125e, + 0x126000001289, + 0x128a0000128e, + 0x1290000012b1, + 0x12b2000012b6, + 0x12b8000012bf, + 0x12c0000012c1, + 0x12c2000012c6, + 0x12c8000012d7, + 0x12d800001311, + 0x131200001316, + 0x13180000135b, + 0x135d00001360, + 0x138000001390, + 0x13a0000013f5, + 0x14010000166d, + 0x166f00001680, + 0x16810000169b, + 0x16a0000016eb, + 0x17000000170d, + 0x170e00001715, + 0x172000001735, + 0x174000001754, + 0x17600000176d, + 0x176e00001771, + 0x177200001774, + 0x1780000017b4, + 0x17b6000017d4, + 0x17d7000017d8, + 0x17dc000017de, + 0x17e0000017ea, + 0x18100000181a, + 0x182000001878, + 0x1880000018ab, + 0x18b0000018f6, + 0x19000000191d, + 0x19200000192c, + 0x19300000193c, + 0x19460000196e, + 0x197000001975, + 0x1980000019ac, + 0x19b0000019ca, + 0x19d0000019da, + 0x1a0000001a1c, + 0x1a2000001a5f, + 0x1a6000001a7d, + 0x1a7f00001a8a, + 0x1a9000001a9a, + 0x1aa700001aa8, + 0x1b0000001b4c, + 0x1b5000001b5a, + 0x1b6b00001b74, + 0x1b8000001bf4, + 0x1c0000001c38, + 0x1c4000001c4a, + 0x1c4d00001c7e, + 0x1cd000001cd3, + 0x1cd400001cf7, + 0x1d0000001d2c, + 0x1d2f00001d30, + 0x1d3b00001d3c, + 0x1d4e00001d4f, + 0x1d6b00001d78, + 0x1d7900001d9b, + 0x1dc000001de7, + 0x1dfc00001e00, + 0x1e0100001e02, + 0x1e0300001e04, + 0x1e0500001e06, + 0x1e0700001e08, + 0x1e0900001e0a, + 0x1e0b00001e0c, + 0x1e0d00001e0e, + 0x1e0f00001e10, + 0x1e1100001e12, + 0x1e1300001e14, + 0x1e1500001e16, + 0x1e1700001e18, + 0x1e1900001e1a, + 0x1e1b00001e1c, + 0x1e1d00001e1e, + 0x1e1f00001e20, + 0x1e2100001e22, + 0x1e2300001e24, + 0x1e2500001e26, + 0x1e2700001e28, + 0x1e2900001e2a, + 0x1e2b00001e2c, + 0x1e2d00001e2e, + 0x1e2f00001e30, + 0x1e3100001e32, + 0x1e3300001e34, + 0x1e3500001e36, + 0x1e3700001e38, + 0x1e3900001e3a, + 0x1e3b00001e3c, + 0x1e3d00001e3e, + 0x1e3f00001e40, + 0x1e4100001e42, + 0x1e4300001e44, + 0x1e4500001e46, + 0x1e4700001e48, + 0x1e4900001e4a, + 0x1e4b00001e4c, + 0x1e4d00001e4e, + 0x1e4f00001e50, + 0x1e5100001e52, + 0x1e5300001e54, + 0x1e5500001e56, + 0x1e5700001e58, + 0x1e5900001e5a, + 0x1e5b00001e5c, + 0x1e5d00001e5e, + 0x1e5f00001e60, + 0x1e6100001e62, + 0x1e6300001e64, + 0x1e6500001e66, + 0x1e6700001e68, + 0x1e6900001e6a, + 0x1e6b00001e6c, + 0x1e6d00001e6e, + 0x1e6f00001e70, + 0x1e7100001e72, + 0x1e7300001e74, + 0x1e7500001e76, + 0x1e7700001e78, + 0x1e7900001e7a, + 0x1e7b00001e7c, + 0x1e7d00001e7e, + 0x1e7f00001e80, + 0x1e8100001e82, + 0x1e8300001e84, + 0x1e8500001e86, + 0x1e8700001e88, + 0x1e8900001e8a, + 0x1e8b00001e8c, + 0x1e8d00001e8e, + 0x1e8f00001e90, + 0x1e9100001e92, + 0x1e9300001e94, + 0x1e9500001e9a, + 0x1e9c00001e9e, + 0x1e9f00001ea0, + 0x1ea100001ea2, + 0x1ea300001ea4, + 0x1ea500001ea6, + 0x1ea700001ea8, + 0x1ea900001eaa, + 0x1eab00001eac, + 0x1ead00001eae, + 0x1eaf00001eb0, + 0x1eb100001eb2, + 0x1eb300001eb4, + 0x1eb500001eb6, + 0x1eb700001eb8, + 0x1eb900001eba, + 0x1ebb00001ebc, + 0x1ebd00001ebe, + 0x1ebf00001ec0, + 0x1ec100001ec2, + 0x1ec300001ec4, + 0x1ec500001ec6, + 0x1ec700001ec8, + 0x1ec900001eca, + 0x1ecb00001ecc, + 0x1ecd00001ece, + 0x1ecf00001ed0, + 0x1ed100001ed2, + 0x1ed300001ed4, + 0x1ed500001ed6, + 0x1ed700001ed8, + 0x1ed900001eda, + 0x1edb00001edc, + 0x1edd00001ede, + 0x1edf00001ee0, + 0x1ee100001ee2, + 0x1ee300001ee4, + 0x1ee500001ee6, + 0x1ee700001ee8, + 0x1ee900001eea, + 0x1eeb00001eec, + 0x1eed00001eee, + 0x1eef00001ef0, + 0x1ef100001ef2, + 0x1ef300001ef4, + 0x1ef500001ef6, + 0x1ef700001ef8, + 0x1ef900001efa, + 0x1efb00001efc, + 0x1efd00001efe, + 0x1eff00001f08, + 0x1f1000001f16, + 0x1f2000001f28, + 0x1f3000001f38, + 0x1f4000001f46, + 0x1f5000001f58, + 0x1f6000001f68, + 0x1f7000001f71, + 0x1f7200001f73, + 0x1f7400001f75, + 0x1f7600001f77, + 0x1f7800001f79, + 0x1f7a00001f7b, + 0x1f7c00001f7d, + 0x1fb000001fb2, + 0x1fb600001fb7, + 0x1fc600001fc7, + 0x1fd000001fd3, + 0x1fd600001fd8, + 0x1fe000001fe3, + 0x1fe400001fe8, + 0x1ff600001ff7, + 0x214e0000214f, + 0x218400002185, + 0x2c3000002c5f, + 0x2c6100002c62, + 0x2c6500002c67, + 0x2c6800002c69, + 0x2c6a00002c6b, + 0x2c6c00002c6d, + 0x2c7100002c72, + 0x2c7300002c75, + 0x2c7600002c7c, + 0x2c8100002c82, + 0x2c8300002c84, + 0x2c8500002c86, + 0x2c8700002c88, + 0x2c8900002c8a, + 0x2c8b00002c8c, + 0x2c8d00002c8e, + 0x2c8f00002c90, + 0x2c9100002c92, + 0x2c9300002c94, + 0x2c9500002c96, + 0x2c9700002c98, + 0x2c9900002c9a, + 0x2c9b00002c9c, + 0x2c9d00002c9e, + 0x2c9f00002ca0, + 0x2ca100002ca2, + 0x2ca300002ca4, + 0x2ca500002ca6, + 0x2ca700002ca8, + 0x2ca900002caa, + 0x2cab00002cac, + 0x2cad00002cae, + 0x2caf00002cb0, + 0x2cb100002cb2, + 0x2cb300002cb4, + 0x2cb500002cb6, + 0x2cb700002cb8, + 0x2cb900002cba, + 0x2cbb00002cbc, + 0x2cbd00002cbe, + 0x2cbf00002cc0, + 0x2cc100002cc2, + 0x2cc300002cc4, + 0x2cc500002cc6, + 0x2cc700002cc8, + 0x2cc900002cca, + 0x2ccb00002ccc, + 0x2ccd00002cce, + 0x2ccf00002cd0, + 0x2cd100002cd2, + 0x2cd300002cd4, + 0x2cd500002cd6, + 0x2cd700002cd8, + 0x2cd900002cda, + 0x2cdb00002cdc, + 0x2cdd00002cde, + 0x2cdf00002ce0, + 0x2ce100002ce2, + 0x2ce300002ce5, + 0x2cec00002ced, + 0x2cee00002cf2, + 0x2cf300002cf4, + 0x2d0000002d26, + 0x2d2700002d28, + 0x2d2d00002d2e, + 0x2d3000002d68, + 0x2d7f00002d97, + 0x2da000002da7, + 0x2da800002daf, + 0x2db000002db7, + 0x2db800002dbf, + 0x2dc000002dc7, + 0x2dc800002dcf, + 0x2dd000002dd7, + 0x2dd800002ddf, + 0x2de000002e00, + 0x2e2f00002e30, + 0x300500003008, + 0x302a0000302e, + 0x303c0000303d, + 0x304100003097, + 0x30990000309b, + 0x309d0000309f, + 0x30a1000030fb, + 0x30fc000030ff, + 0x31050000312e, + 0x31a0000031bb, + 0x31f000003200, + 0x340000004db6, + 0x4e0000009fcd, + 0xa0000000a48d, + 0xa4d00000a4fe, + 0xa5000000a60d, + 0xa6100000a62c, + 0xa6410000a642, + 0xa6430000a644, + 0xa6450000a646, + 0xa6470000a648, + 0xa6490000a64a, + 0xa64b0000a64c, + 0xa64d0000a64e, + 0xa64f0000a650, + 0xa6510000a652, + 0xa6530000a654, + 0xa6550000a656, + 0xa6570000a658, + 0xa6590000a65a, + 0xa65b0000a65c, + 0xa65d0000a65e, + 0xa65f0000a660, + 0xa6610000a662, + 0xa6630000a664, + 0xa6650000a666, + 0xa6670000a668, + 0xa6690000a66a, + 0xa66b0000a66c, + 0xa66d0000a670, + 0xa6740000a67e, + 0xa67f0000a680, + 0xa6810000a682, + 0xa6830000a684, + 0xa6850000a686, + 0xa6870000a688, + 0xa6890000a68a, + 0xa68b0000a68c, + 0xa68d0000a68e, + 0xa68f0000a690, + 0xa6910000a692, + 0xa6930000a694, + 0xa6950000a696, + 0xa6970000a698, + 0xa69f0000a6e6, + 0xa6f00000a6f2, + 0xa7170000a720, + 0xa7230000a724, + 0xa7250000a726, + 0xa7270000a728, + 0xa7290000a72a, + 0xa72b0000a72c, + 0xa72d0000a72e, + 0xa72f0000a732, + 0xa7330000a734, + 0xa7350000a736, + 0xa7370000a738, + 0xa7390000a73a, + 0xa73b0000a73c, + 0xa73d0000a73e, + 0xa73f0000a740, + 0xa7410000a742, + 0xa7430000a744, + 0xa7450000a746, + 0xa7470000a748, + 0xa7490000a74a, + 0xa74b0000a74c, + 0xa74d0000a74e, + 0xa74f0000a750, + 0xa7510000a752, + 0xa7530000a754, + 0xa7550000a756, + 0xa7570000a758, + 0xa7590000a75a, + 0xa75b0000a75c, + 0xa75d0000a75e, + 0xa75f0000a760, + 0xa7610000a762, + 0xa7630000a764, + 0xa7650000a766, + 0xa7670000a768, + 0xa7690000a76a, + 0xa76b0000a76c, + 0xa76d0000a76e, + 0xa76f0000a770, + 0xa7710000a779, + 0xa77a0000a77b, + 0xa77c0000a77d, + 0xa77f0000a780, + 0xa7810000a782, + 0xa7830000a784, + 0xa7850000a786, + 0xa7870000a789, + 0xa78c0000a78d, + 0xa78e0000a78f, + 0xa7910000a792, + 0xa7930000a794, + 0xa7a10000a7a2, + 0xa7a30000a7a4, + 0xa7a50000a7a6, + 0xa7a70000a7a8, + 0xa7a90000a7aa, + 0xa7fa0000a828, + 0xa8400000a874, + 0xa8800000a8c5, + 0xa8d00000a8da, + 0xa8e00000a8f8, + 0xa8fb0000a8fc, + 0xa9000000a92e, + 0xa9300000a954, + 0xa9800000a9c1, + 0xa9cf0000a9da, + 0xaa000000aa37, + 0xaa400000aa4e, + 0xaa500000aa5a, + 0xaa600000aa77, + 0xaa7a0000aa7c, + 0xaa800000aac3, + 0xaadb0000aade, + 0xaae00000aaf0, + 0xaaf20000aaf7, + 0xab010000ab07, + 0xab090000ab0f, + 0xab110000ab17, + 0xab200000ab27, + 0xab280000ab2f, + 0xabc00000abeb, + 0xabec0000abee, + 0xabf00000abfa, + 0xac000000d7a4, + 0xfa0e0000fa10, + 0xfa110000fa12, + 0xfa130000fa15, + 0xfa1f0000fa20, + 0xfa210000fa22, + 0xfa230000fa25, + 0xfa270000fa2a, + 0xfb1e0000fb1f, + 0xfe200000fe27, + 0xfe730000fe74, + 0x100000001000c, + 0x1000d00010027, + 0x100280001003b, + 0x1003c0001003e, + 0x1003f0001004e, + 0x100500001005e, + 0x10080000100fb, + 0x101fd000101fe, + 0x102800001029d, + 0x102a0000102d1, + 0x103000001031f, + 0x1033000010341, + 0x103420001034a, + 0x103800001039e, + 0x103a0000103c4, + 0x103c8000103d0, + 0x104280001049e, + 0x104a0000104aa, + 0x1080000010806, + 0x1080800010809, + 0x1080a00010836, + 0x1083700010839, + 0x1083c0001083d, + 0x1083f00010856, + 0x1090000010916, + 0x109200001093a, + 0x10980000109b8, + 0x109be000109c0, + 0x10a0000010a04, + 0x10a0500010a07, + 0x10a0c00010a14, + 0x10a1500010a18, + 0x10a1900010a34, + 0x10a3800010a3b, + 0x10a3f00010a40, + 0x10a6000010a7d, + 0x10b0000010b36, + 0x10b4000010b56, + 0x10b6000010b73, + 0x10c0000010c49, + 0x1100000011047, + 0x1106600011070, + 0x11080000110bb, + 0x110d0000110e9, + 0x110f0000110fa, + 0x1110000011135, + 0x1113600011140, + 0x11180000111c5, + 0x111d0000111da, + 0x11680000116b8, + 0x116c0000116ca, + 0x120000001236f, + 0x130000001342f, + 0x1680000016a39, + 0x16f0000016f45, + 0x16f5000016f7f, + 0x16f8f00016fa0, + 0x1b0000001b002, + 0x200000002a6d7, + 0x2a7000002b735, + 0x2b7400002b81e, ), 'CONTEXTJ': ( - (0x200c, 0x200e), + 0x200c0000200e, ), 'CONTEXTO': ( - (0xb7, 0xb8), - (0x375, 0x376), - (0x5f3, 0x5f5), - (0x660, 0x66a), - (0x6f0, 0x6fa), - (0x30fb, 0x30fc), + 0xb7000000b8, + 0x37500000376, + 0x5f3000005f5, + 0x6600000066a, + 0x6f0000006fa, + 0x30fb000030fc, ), } diff --git a/requests/packages/idna/intranges.py b/requests/packages/idna/intranges.py index ee8a175d..fa8a7356 100644 --- a/requests/packages/idna/intranges.py +++ b/requests/packages/idna/intranges.py @@ -11,6 +11,8 @@ def intranges_from_list(list_): """Represent a list of integers as a sequence of ranges: ((start_0, end_0), (start_1, end_1), ...), such that the original integers are exactly those x such that start_i <= x < end_i for some i. + + Ranges are encoded as single integers (start << 32 | end), not as tuples. """ sorted_list = sorted(list_) @@ -21,26 +23,31 @@ def intranges_from_list(list_): if sorted_list[i] == sorted_list[i+1]-1: continue current_range = sorted_list[last_write+1:i+1] - range_tuple = (current_range[0], current_range[-1] + 1) - ranges.append(range_tuple) + ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) last_write = i return tuple(ranges) +def _encode_range(start, end): + return (start << 32) | end + +def _decode_range(r): + return (r >> 32), (r & ((1 << 32) - 1)) + def intranges_contain(int_, ranges): """Determine if `int_` falls into one of the ranges in `ranges`.""" - tuple_ = (int_, int_) + tuple_ = _encode_range(int_, 0) pos = bisect.bisect_left(ranges, tuple_) # we could be immediately ahead of a tuple (start, end) # with start < int_ <= end if pos > 0: - left, right = ranges[pos-1] + left, right = _decode_range(ranges[pos-1]) if left <= int_ < right: return True # or we could be immediately behind a tuple (int_, end) if pos < len(ranges): - left, _ = ranges[pos] + left, _ = _decode_range(ranges[pos]) if left == int_: return True return False |
