summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python
diff options
context:
space:
mode:
authorVijay Anusuri <vanusuri@mvista.com>2025-11-20 14:37:59 +0530
committerSteve Sakoman <steve@sakoman.com>2025-12-01 06:50:49 -0800
commitcdc78fd36f440024c36f92c0170961c96f6d096b (patch)
treeaf16400f47722058bd499f6bf35d2cd9de476fdc /meta/recipes-devtools/python
parent36165cce685e0048fb7a576c009e12d718c80ea1 (diff)
downloadpoky-cdc78fd36f440024c36f92c0170961c96f6d096b.tar.gz
python3-idna: Fix CVE-2024-3651
import patch from debian to fix CVE-2024-3651 Upstream-Status: Backport [import from debian 3.3-1+deb12u1 Upstream commit https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7] (From OE-Core rev: 7359d3cdf2210e81a26d8712769f7e23bfbc1bb7) Signed-off-by: Vijay Anusuri <vanusuri@mvista.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/recipes-devtools/python')
-rw-r--r--meta/recipes-devtools/python/python3-idna/CVE-2024-3651.patch2484
-rw-r--r--meta/recipes-devtools/python/python3-idna_3.3.bb2
2 files changed, 2486 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3-idna/CVE-2024-3651.patch b/meta/recipes-devtools/python/python3-idna/CVE-2024-3651.patch
new file mode 100644
index 0000000000..c96e13b35b
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-idna/CVE-2024-3651.patch
@@ -0,0 +1,2484 @@
1From: Kim Davies <kim@cynosure.com.au>
2Date: Mon, 1 Apr 2024 20:24:57 -0700
3Subject: More efficient resolution of joiner contexts
4
5In some pathological cases, this would out eligibility under
6CONTEXTJ rules much faster.
7
8Generated idna/idnadata.py (and idna/uts46data.py) files were updated
9with `tools/idna-data --dir idna --no-cache --version 14.0.0 make-libdata`.
10
11Origin: https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7
12Bug: https://github.com/kjd/idna/security/advisories/GHSA-jjg7-2v4v-x38h
13Bug: https://bugzilla.redhat.com/show_bug.cgi?id=2274779
14Bug-Debian: https://security-tracker.debian.org/tracker/CVE-2024-3651
15Bug-Debian: https://bugs.debian.org/1069127
16
17Upstream-Status: Backport [import from debian 3.3-1+deb12u1
18Upstream commit https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7]
19CVE: CVE-2024-3651
20Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
21---
22 idna/core.py | 16 +-
23 idna/idnadata.py | 2162 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
24 tools/idna-data | 13 +-
25 3 files changed, 2124 insertions(+), 67 deletions(-)
26
27diff --git a/idna/core.py b/idna/core.py
28index 55ab967..c6aa30a 100644
29--- a/idna/core.py
30+++ b/idna/core.py
31@@ -150,9 +150,11 @@ def valid_contextj(label: str, pos: int) -> bool:
32 joining_type = idnadata.joining_types.get(ord(label[i]))
33 if joining_type == ord('T'):
34 continue
35- if joining_type in [ord('L'), ord('D')]:
36+ elif joining_type in [ord('L'), ord('D')]:
37 ok = True
38 break
39+ else:
40+ break
41
42 if not ok:
43 return False
44@@ -162,9 +164,11 @@ def valid_contextj(label: str, pos: int) -> bool:
45 joining_type = idnadata.joining_types.get(ord(label[i]))
46 if joining_type == ord('T'):
47 continue
48- if joining_type in [ord('R'), ord('D')]:
49+ elif joining_type in [ord('R'), ord('D')]:
50 ok = True
51 break
52+ else:
53+ break
54 return ok
55
56 if cp_value == 0x200d:
57@@ -236,12 +240,8 @@ def check_label(label: Union[str, bytes, bytearray]) -> None:
58 if intranges_contain(cp_value, idnadata.codepoint_classes['PVALID']):
59 continue
60 elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTJ']):
61- try:
62- if not valid_contextj(label, pos):
63- raise InvalidCodepointContext('Joiner {} not allowed at position {} in {}'.format(
64- _unot(cp_value), pos+1, repr(label)))
65- except ValueError:
66- raise IDNAError('Unknown codepoint adjacent to joiner {} at position {} in {}'.format(
67+ if not valid_contextj(label, pos):
68+ raise InvalidCodepointContext('Joiner {} not allowed at position {} in {}'.format(
69 _unot(cp_value), pos+1, repr(label)))
70 elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTO']):
71 if not valid_contexto(label, pos):
72diff --git a/idna/idnadata.py b/idna/idnadata.py
73index 1b5805d..ab77625 100644
74--- a/idna/idnadata.py
75+++ b/idna/idnadata.py
76@@ -97,16 +97,190 @@ scripts = {
77 ),
78 }
79 joining_types = {
80- 0x600: 85,
81- 0x601: 85,
82- 0x602: 85,
83- 0x603: 85,
84- 0x604: 85,
85- 0x605: 85,
86- 0x608: 85,
87- 0x60b: 85,
88+ 0xad: 84,
89+ 0x300: 84,
90+ 0x301: 84,
91+ 0x302: 84,
92+ 0x303: 84,
93+ 0x304: 84,
94+ 0x305: 84,
95+ 0x306: 84,
96+ 0x307: 84,
97+ 0x308: 84,
98+ 0x309: 84,
99+ 0x30a: 84,
100+ 0x30b: 84,
101+ 0x30c: 84,
102+ 0x30d: 84,
103+ 0x30e: 84,
104+ 0x30f: 84,
105+ 0x310: 84,
106+ 0x311: 84,
107+ 0x312: 84,
108+ 0x313: 84,
109+ 0x314: 84,
110+ 0x315: 84,
111+ 0x316: 84,
112+ 0x317: 84,
113+ 0x318: 84,
114+ 0x319: 84,
115+ 0x31a: 84,
116+ 0x31b: 84,
117+ 0x31c: 84,
118+ 0x31d: 84,
119+ 0x31e: 84,
120+ 0x31f: 84,
121+ 0x320: 84,
122+ 0x321: 84,
123+ 0x322: 84,
124+ 0x323: 84,
125+ 0x324: 84,
126+ 0x325: 84,
127+ 0x326: 84,
128+ 0x327: 84,
129+ 0x328: 84,
130+ 0x329: 84,
131+ 0x32a: 84,
132+ 0x32b: 84,
133+ 0x32c: 84,
134+ 0x32d: 84,
135+ 0x32e: 84,
136+ 0x32f: 84,
137+ 0x330: 84,
138+ 0x331: 84,
139+ 0x332: 84,
140+ 0x333: 84,
141+ 0x334: 84,
142+ 0x335: 84,
143+ 0x336: 84,
144+ 0x337: 84,
145+ 0x338: 84,
146+ 0x339: 84,
147+ 0x33a: 84,
148+ 0x33b: 84,
149+ 0x33c: 84,
150+ 0x33d: 84,
151+ 0x33e: 84,
152+ 0x33f: 84,
153+ 0x340: 84,
154+ 0x341: 84,
155+ 0x342: 84,
156+ 0x343: 84,
157+ 0x344: 84,
158+ 0x345: 84,
159+ 0x346: 84,
160+ 0x347: 84,
161+ 0x348: 84,
162+ 0x349: 84,
163+ 0x34a: 84,
164+ 0x34b: 84,
165+ 0x34c: 84,
166+ 0x34d: 84,
167+ 0x34e: 84,
168+ 0x34f: 84,
169+ 0x350: 84,
170+ 0x351: 84,
171+ 0x352: 84,
172+ 0x353: 84,
173+ 0x354: 84,
174+ 0x355: 84,
175+ 0x356: 84,
176+ 0x357: 84,
177+ 0x358: 84,
178+ 0x359: 84,
179+ 0x35a: 84,
180+ 0x35b: 84,
181+ 0x35c: 84,
182+ 0x35d: 84,
183+ 0x35e: 84,
184+ 0x35f: 84,
185+ 0x360: 84,
186+ 0x361: 84,
187+ 0x362: 84,
188+ 0x363: 84,
189+ 0x364: 84,
190+ 0x365: 84,
191+ 0x366: 84,
192+ 0x367: 84,
193+ 0x368: 84,
194+ 0x369: 84,
195+ 0x36a: 84,
196+ 0x36b: 84,
197+ 0x36c: 84,
198+ 0x36d: 84,
199+ 0x36e: 84,
200+ 0x36f: 84,
201+ 0x483: 84,
202+ 0x484: 84,
203+ 0x485: 84,
204+ 0x486: 84,
205+ 0x487: 84,
206+ 0x488: 84,
207+ 0x489: 84,
208+ 0x591: 84,
209+ 0x592: 84,
210+ 0x593: 84,
211+ 0x594: 84,
212+ 0x595: 84,
213+ 0x596: 84,
214+ 0x597: 84,
215+ 0x598: 84,
216+ 0x599: 84,
217+ 0x59a: 84,
218+ 0x59b: 84,
219+ 0x59c: 84,
220+ 0x59d: 84,
221+ 0x59e: 84,
222+ 0x59f: 84,
223+ 0x5a0: 84,
224+ 0x5a1: 84,
225+ 0x5a2: 84,
226+ 0x5a3: 84,
227+ 0x5a4: 84,
228+ 0x5a5: 84,
229+ 0x5a6: 84,
230+ 0x5a7: 84,
231+ 0x5a8: 84,
232+ 0x5a9: 84,
233+ 0x5aa: 84,
234+ 0x5ab: 84,
235+ 0x5ac: 84,
236+ 0x5ad: 84,
237+ 0x5ae: 84,
238+ 0x5af: 84,
239+ 0x5b0: 84,
240+ 0x5b1: 84,
241+ 0x5b2: 84,
242+ 0x5b3: 84,
243+ 0x5b4: 84,
244+ 0x5b5: 84,
245+ 0x5b6: 84,
246+ 0x5b7: 84,
247+ 0x5b8: 84,
248+ 0x5b9: 84,
249+ 0x5ba: 84,
250+ 0x5bb: 84,
251+ 0x5bc: 84,
252+ 0x5bd: 84,
253+ 0x5bf: 84,
254+ 0x5c1: 84,
255+ 0x5c2: 84,
256+ 0x5c4: 84,
257+ 0x5c5: 84,
258+ 0x5c7: 84,
259+ 0x610: 84,
260+ 0x611: 84,
261+ 0x612: 84,
262+ 0x613: 84,
263+ 0x614: 84,
264+ 0x615: 84,
265+ 0x616: 84,
266+ 0x617: 84,
267+ 0x618: 84,
268+ 0x619: 84,
269+ 0x61a: 84,
270+ 0x61c: 84,
271 0x620: 68,
272- 0x621: 85,
273 0x622: 82,
274 0x623: 82,
275 0x624: 82,
276@@ -148,12 +322,33 @@ joining_types = {
277 0x648: 82,
278 0x649: 68,
279 0x64a: 68,
280+ 0x64b: 84,
281+ 0x64c: 84,
282+ 0x64d: 84,
283+ 0x64e: 84,
284+ 0x64f: 84,
285+ 0x650: 84,
286+ 0x651: 84,
287+ 0x652: 84,
288+ 0x653: 84,
289+ 0x654: 84,
290+ 0x655: 84,
291+ 0x656: 84,
292+ 0x657: 84,
293+ 0x658: 84,
294+ 0x659: 84,
295+ 0x65a: 84,
296+ 0x65b: 84,
297+ 0x65c: 84,
298+ 0x65d: 84,
299+ 0x65e: 84,
300+ 0x65f: 84,
301 0x66e: 68,
302 0x66f: 68,
303+ 0x670: 84,
304 0x671: 82,
305 0x672: 82,
306 0x673: 82,
307- 0x674: 85,
308 0x675: 82,
309 0x676: 82,
310 0x677: 82,
311@@ -250,7 +445,25 @@ joining_types = {
312 0x6d2: 82,
313 0x6d3: 82,
314 0x6d5: 82,
315- 0x6dd: 85,
316+ 0x6d6: 84,
317+ 0x6d7: 84,
318+ 0x6d8: 84,
319+ 0x6d9: 84,
320+ 0x6da: 84,
321+ 0x6db: 84,
322+ 0x6dc: 84,
323+ 0x6df: 84,
324+ 0x6e0: 84,
325+ 0x6e1: 84,
326+ 0x6e2: 84,
327+ 0x6e3: 84,
328+ 0x6e4: 84,
329+ 0x6e7: 84,
330+ 0x6e8: 84,
331+ 0x6ea: 84,
332+ 0x6eb: 84,
333+ 0x6ec: 84,
334+ 0x6ed: 84,
335 0x6ee: 82,
336 0x6ef: 82,
337 0x6fa: 68,
338@@ -259,6 +472,7 @@ joining_types = {
339 0x6ff: 68,
340 0x70f: 84,
341 0x710: 82,
342+ 0x711: 84,
343 0x712: 68,
344 0x713: 68,
345 0x714: 68,
346@@ -289,6 +503,33 @@ joining_types = {
347 0x72d: 68,
348 0x72e: 68,
349 0x72f: 82,
350+ 0x730: 84,
351+ 0x731: 84,
352+ 0x732: 84,
353+ 0x733: 84,
354+ 0x734: 84,
355+ 0x735: 84,
356+ 0x736: 84,
357+ 0x737: 84,
358+ 0x738: 84,
359+ 0x739: 84,
360+ 0x73a: 84,
361+ 0x73b: 84,
362+ 0x73c: 84,
363+ 0x73d: 84,
364+ 0x73e: 84,
365+ 0x73f: 84,
366+ 0x740: 84,
367+ 0x741: 84,
368+ 0x742: 84,
369+ 0x743: 84,
370+ 0x744: 84,
371+ 0x745: 84,
372+ 0x746: 84,
373+ 0x747: 84,
374+ 0x748: 84,
375+ 0x749: 84,
376+ 0x74a: 84,
377 0x74d: 82,
378 0x74e: 68,
379 0x74f: 68,
380@@ -340,6 +581,17 @@ joining_types = {
381 0x77d: 68,
382 0x77e: 68,
383 0x77f: 68,
384+ 0x7a6: 84,
385+ 0x7a7: 84,
386+ 0x7a8: 84,
387+ 0x7a9: 84,
388+ 0x7aa: 84,
389+ 0x7ab: 84,
390+ 0x7ac: 84,
391+ 0x7ad: 84,
392+ 0x7ae: 84,
393+ 0x7af: 84,
394+ 0x7b0: 84,
395 0x7ca: 68,
396 0x7cb: 68,
397 0x7cc: 68,
398@@ -373,7 +625,38 @@ joining_types = {
399 0x7e8: 68,
400 0x7e9: 68,
401 0x7ea: 68,
402+ 0x7eb: 84,
403+ 0x7ec: 84,
404+ 0x7ed: 84,
405+ 0x7ee: 84,
406+ 0x7ef: 84,
407+ 0x7f0: 84,
408+ 0x7f1: 84,
409+ 0x7f2: 84,
410+ 0x7f3: 84,
411 0x7fa: 67,
412+ 0x7fd: 84,
413+ 0x816: 84,
414+ 0x817: 84,
415+ 0x818: 84,
416+ 0x819: 84,
417+ 0x81b: 84,
418+ 0x81c: 84,
419+ 0x81d: 84,
420+ 0x81e: 84,
421+ 0x81f: 84,
422+ 0x820: 84,
423+ 0x821: 84,
424+ 0x822: 84,
425+ 0x823: 84,
426+ 0x825: 84,
427+ 0x826: 84,
428+ 0x827: 84,
429+ 0x829: 84,
430+ 0x82a: 84,
431+ 0x82b: 84,
432+ 0x82c: 84,
433+ 0x82d: 84,
434 0x840: 82,
435 0x841: 68,
436 0x842: 68,
437@@ -399,13 +682,14 @@ joining_types = {
438 0x856: 82,
439 0x857: 82,
440 0x858: 82,
441+ 0x859: 84,
442+ 0x85a: 84,
443+ 0x85b: 84,
444 0x860: 68,
445- 0x861: 85,
446 0x862: 68,
447 0x863: 68,
448 0x864: 68,
449 0x865: 68,
450- 0x866: 85,
451 0x867: 82,
452 0x868: 68,
453 0x869: 82,
454@@ -433,16 +717,20 @@ joining_types = {
455 0x884: 67,
456 0x885: 67,
457 0x886: 68,
458- 0x887: 85,
459- 0x888: 85,
460 0x889: 68,
461 0x88a: 68,
462 0x88b: 68,
463 0x88c: 68,
464 0x88d: 68,
465 0x88e: 82,
466- 0x890: 85,
467- 0x891: 85,
468+ 0x898: 84,
469+ 0x899: 84,
470+ 0x89a: 84,
471+ 0x89b: 84,
472+ 0x89c: 84,
473+ 0x89d: 84,
474+ 0x89e: 84,
475+ 0x89f: 84,
476 0x8a0: 68,
477 0x8a1: 68,
478 0x8a2: 68,
479@@ -456,7 +744,6 @@ joining_types = {
480 0x8aa: 82,
481 0x8ab: 82,
482 0x8ac: 82,
483- 0x8ad: 85,
484 0x8ae: 82,
485 0x8af: 68,
486 0x8b0: 68,
487@@ -484,11 +771,356 @@ joining_types = {
488 0x8c6: 68,
489 0x8c7: 68,
490 0x8c8: 68,
491- 0x8e2: 85,
492- 0x1806: 85,
493+ 0x8ca: 84,
494+ 0x8cb: 84,
495+ 0x8cc: 84,
496+ 0x8cd: 84,
497+ 0x8ce: 84,
498+ 0x8cf: 84,
499+ 0x8d0: 84,
500+ 0x8d1: 84,
501+ 0x8d2: 84,
502+ 0x8d3: 84,
503+ 0x8d4: 84,
504+ 0x8d5: 84,
505+ 0x8d6: 84,
506+ 0x8d7: 84,
507+ 0x8d8: 84,
508+ 0x8d9: 84,
509+ 0x8da: 84,
510+ 0x8db: 84,
511+ 0x8dc: 84,
512+ 0x8dd: 84,
513+ 0x8de: 84,
514+ 0x8df: 84,
515+ 0x8e0: 84,
516+ 0x8e1: 84,
517+ 0x8e3: 84,
518+ 0x8e4: 84,
519+ 0x8e5: 84,
520+ 0x8e6: 84,
521+ 0x8e7: 84,
522+ 0x8e8: 84,
523+ 0x8e9: 84,
524+ 0x8ea: 84,
525+ 0x8eb: 84,
526+ 0x8ec: 84,
527+ 0x8ed: 84,
528+ 0x8ee: 84,
529+ 0x8ef: 84,
530+ 0x8f0: 84,
531+ 0x8f1: 84,
532+ 0x8f2: 84,
533+ 0x8f3: 84,
534+ 0x8f4: 84,
535+ 0x8f5: 84,
536+ 0x8f6: 84,
537+ 0x8f7: 84,
538+ 0x8f8: 84,
539+ 0x8f9: 84,
540+ 0x8fa: 84,
541+ 0x8fb: 84,
542+ 0x8fc: 84,
543+ 0x8fd: 84,
544+ 0x8fe: 84,
545+ 0x8ff: 84,
546+ 0x900: 84,
547+ 0x901: 84,
548+ 0x902: 84,
549+ 0x93a: 84,
550+ 0x93c: 84,
551+ 0x941: 84,
552+ 0x942: 84,
553+ 0x943: 84,
554+ 0x944: 84,
555+ 0x945: 84,
556+ 0x946: 84,
557+ 0x947: 84,
558+ 0x948: 84,
559+ 0x94d: 84,
560+ 0x951: 84,
561+ 0x952: 84,
562+ 0x953: 84,
563+ 0x954: 84,
564+ 0x955: 84,
565+ 0x956: 84,
566+ 0x957: 84,
567+ 0x962: 84,
568+ 0x963: 84,
569+ 0x981: 84,
570+ 0x9bc: 84,
571+ 0x9c1: 84,
572+ 0x9c2: 84,
573+ 0x9c3: 84,
574+ 0x9c4: 84,
575+ 0x9cd: 84,
576+ 0x9e2: 84,
577+ 0x9e3: 84,
578+ 0x9fe: 84,
579+ 0xa01: 84,
580+ 0xa02: 84,
581+ 0xa3c: 84,
582+ 0xa41: 84,
583+ 0xa42: 84,
584+ 0xa47: 84,
585+ 0xa48: 84,
586+ 0xa4b: 84,
587+ 0xa4c: 84,
588+ 0xa4d: 84,
589+ 0xa51: 84,
590+ 0xa70: 84,
591+ 0xa71: 84,
592+ 0xa75: 84,
593+ 0xa81: 84,
594+ 0xa82: 84,
595+ 0xabc: 84,
596+ 0xac1: 84,
597+ 0xac2: 84,
598+ 0xac3: 84,
599+ 0xac4: 84,
600+ 0xac5: 84,
601+ 0xac7: 84,
602+ 0xac8: 84,
603+ 0xacd: 84,
604+ 0xae2: 84,
605+ 0xae3: 84,
606+ 0xafa: 84,
607+ 0xafb: 84,
608+ 0xafc: 84,
609+ 0xafd: 84,
610+ 0xafe: 84,
611+ 0xaff: 84,
612+ 0xb01: 84,
613+ 0xb3c: 84,
614+ 0xb3f: 84,
615+ 0xb41: 84,
616+ 0xb42: 84,
617+ 0xb43: 84,
618+ 0xb44: 84,
619+ 0xb4d: 84,
620+ 0xb55: 84,
621+ 0xb56: 84,
622+ 0xb62: 84,
623+ 0xb63: 84,
624+ 0xb82: 84,
625+ 0xbc0: 84,
626+ 0xbcd: 84,
627+ 0xc00: 84,
628+ 0xc04: 84,
629+ 0xc3c: 84,
630+ 0xc3e: 84,
631+ 0xc3f: 84,
632+ 0xc40: 84,
633+ 0xc46: 84,
634+ 0xc47: 84,
635+ 0xc48: 84,
636+ 0xc4a: 84,
637+ 0xc4b: 84,
638+ 0xc4c: 84,
639+ 0xc4d: 84,
640+ 0xc55: 84,
641+ 0xc56: 84,
642+ 0xc62: 84,
643+ 0xc63: 84,
644+ 0xc81: 84,
645+ 0xcbc: 84,
646+ 0xcbf: 84,
647+ 0xcc6: 84,
648+ 0xccc: 84,
649+ 0xccd: 84,
650+ 0xce2: 84,
651+ 0xce3: 84,
652+ 0xd00: 84,
653+ 0xd01: 84,
654+ 0xd3b: 84,
655+ 0xd3c: 84,
656+ 0xd41: 84,
657+ 0xd42: 84,
658+ 0xd43: 84,
659+ 0xd44: 84,
660+ 0xd4d: 84,
661+ 0xd62: 84,
662+ 0xd63: 84,
663+ 0xd81: 84,
664+ 0xdca: 84,
665+ 0xdd2: 84,
666+ 0xdd3: 84,
667+ 0xdd4: 84,
668+ 0xdd6: 84,
669+ 0xe31: 84,
670+ 0xe34: 84,
671+ 0xe35: 84,
672+ 0xe36: 84,
673+ 0xe37: 84,
674+ 0xe38: 84,
675+ 0xe39: 84,
676+ 0xe3a: 84,
677+ 0xe47: 84,
678+ 0xe48: 84,
679+ 0xe49: 84,
680+ 0xe4a: 84,
681+ 0xe4b: 84,
682+ 0xe4c: 84,
683+ 0xe4d: 84,
684+ 0xe4e: 84,
685+ 0xeb1: 84,
686+ 0xeb4: 84,
687+ 0xeb5: 84,
688+ 0xeb6: 84,
689+ 0xeb7: 84,
690+ 0xeb8: 84,
691+ 0xeb9: 84,
692+ 0xeba: 84,
693+ 0xebb: 84,
694+ 0xebc: 84,
695+ 0xec8: 84,
696+ 0xec9: 84,
697+ 0xeca: 84,
698+ 0xecb: 84,
699+ 0xecc: 84,
700+ 0xecd: 84,
701+ 0xf18: 84,
702+ 0xf19: 84,
703+ 0xf35: 84,
704+ 0xf37: 84,
705+ 0xf39: 84,
706+ 0xf71: 84,
707+ 0xf72: 84,
708+ 0xf73: 84,
709+ 0xf74: 84,
710+ 0xf75: 84,
711+ 0xf76: 84,
712+ 0xf77: 84,
713+ 0xf78: 84,
714+ 0xf79: 84,
715+ 0xf7a: 84,
716+ 0xf7b: 84,
717+ 0xf7c: 84,
718+ 0xf7d: 84,
719+ 0xf7e: 84,
720+ 0xf80: 84,
721+ 0xf81: 84,
722+ 0xf82: 84,
723+ 0xf83: 84,
724+ 0xf84: 84,
725+ 0xf86: 84,
726+ 0xf87: 84,
727+ 0xf8d: 84,
728+ 0xf8e: 84,
729+ 0xf8f: 84,
730+ 0xf90: 84,
731+ 0xf91: 84,
732+ 0xf92: 84,
733+ 0xf93: 84,
734+ 0xf94: 84,
735+ 0xf95: 84,
736+ 0xf96: 84,
737+ 0xf97: 84,
738+ 0xf99: 84,
739+ 0xf9a: 84,
740+ 0xf9b: 84,
741+ 0xf9c: 84,
742+ 0xf9d: 84,
743+ 0xf9e: 84,
744+ 0xf9f: 84,
745+ 0xfa0: 84,
746+ 0xfa1: 84,
747+ 0xfa2: 84,
748+ 0xfa3: 84,
749+ 0xfa4: 84,
750+ 0xfa5: 84,
751+ 0xfa6: 84,
752+ 0xfa7: 84,
753+ 0xfa8: 84,
754+ 0xfa9: 84,
755+ 0xfaa: 84,
756+ 0xfab: 84,
757+ 0xfac: 84,
758+ 0xfad: 84,
759+ 0xfae: 84,
760+ 0xfaf: 84,
761+ 0xfb0: 84,
762+ 0xfb1: 84,
763+ 0xfb2: 84,
764+ 0xfb3: 84,
765+ 0xfb4: 84,
766+ 0xfb5: 84,
767+ 0xfb6: 84,
768+ 0xfb7: 84,
769+ 0xfb8: 84,
770+ 0xfb9: 84,
771+ 0xfba: 84,
772+ 0xfbb: 84,
773+ 0xfbc: 84,
774+ 0xfc6: 84,
775+ 0x102d: 84,
776+ 0x102e: 84,
777+ 0x102f: 84,
778+ 0x1030: 84,
779+ 0x1032: 84,
780+ 0x1033: 84,
781+ 0x1034: 84,
782+ 0x1035: 84,
783+ 0x1036: 84,
784+ 0x1037: 84,
785+ 0x1039: 84,
786+ 0x103a: 84,
787+ 0x103d: 84,
788+ 0x103e: 84,
789+ 0x1058: 84,
790+ 0x1059: 84,
791+ 0x105e: 84,
792+ 0x105f: 84,
793+ 0x1060: 84,
794+ 0x1071: 84,
795+ 0x1072: 84,
796+ 0x1073: 84,
797+ 0x1074: 84,
798+ 0x1082: 84,
799+ 0x1085: 84,
800+ 0x1086: 84,
801+ 0x108d: 84,
802+ 0x109d: 84,
803+ 0x135d: 84,
804+ 0x135e: 84,
805+ 0x135f: 84,
806+ 0x1712: 84,
807+ 0x1713: 84,
808+ 0x1714: 84,
809+ 0x1732: 84,
810+ 0x1733: 84,
811+ 0x1752: 84,
812+ 0x1753: 84,
813+ 0x1772: 84,
814+ 0x1773: 84,
815+ 0x17b4: 84,
816+ 0x17b5: 84,
817+ 0x17b7: 84,
818+ 0x17b8: 84,
819+ 0x17b9: 84,
820+ 0x17ba: 84,
821+ 0x17bb: 84,
822+ 0x17bc: 84,
823+ 0x17bd: 84,
824+ 0x17c6: 84,
825+ 0x17c9: 84,
826+ 0x17ca: 84,
827+ 0x17cb: 84,
828+ 0x17cc: 84,
829+ 0x17cd: 84,
830+ 0x17ce: 84,
831+ 0x17cf: 84,
832+ 0x17d0: 84,
833+ 0x17d1: 84,
834+ 0x17d2: 84,
835+ 0x17d3: 84,
836+ 0x17dd: 84,
837 0x1807: 68,
838 0x180a: 67,
839- 0x180e: 85,
840+ 0x180b: 84,
841+ 0x180c: 84,
842+ 0x180d: 84,
843+ 0x180f: 84,
844 0x1820: 68,
845 0x1821: 68,
846 0x1822: 68,
847@@ -578,11 +1210,6 @@ joining_types = {
848 0x1876: 68,
849 0x1877: 68,
850 0x1878: 68,
851- 0x1880: 85,
852- 0x1881: 85,
853- 0x1882: 85,
854- 0x1883: 85,
855- 0x1884: 85,
856 0x1885: 84,
857 0x1886: 84,
858 0x1887: 68,
859@@ -619,14 +1246,339 @@ joining_types = {
860 0x18a6: 68,
861 0x18a7: 68,
862 0x18a8: 68,
863+ 0x18a9: 84,
864 0x18aa: 68,
865- 0x200c: 85,
866+ 0x1920: 84,
867+ 0x1921: 84,
868+ 0x1922: 84,
869+ 0x1927: 84,
870+ 0x1928: 84,
871+ 0x1932: 84,
872+ 0x1939: 84,
873+ 0x193a: 84,
874+ 0x193b: 84,
875+ 0x1a17: 84,
876+ 0x1a18: 84,
877+ 0x1a1b: 84,
878+ 0x1a56: 84,
879+ 0x1a58: 84,
880+ 0x1a59: 84,
881+ 0x1a5a: 84,
882+ 0x1a5b: 84,
883+ 0x1a5c: 84,
884+ 0x1a5d: 84,
885+ 0x1a5e: 84,
886+ 0x1a60: 84,
887+ 0x1a62: 84,
888+ 0x1a65: 84,
889+ 0x1a66: 84,
890+ 0x1a67: 84,
891+ 0x1a68: 84,
892+ 0x1a69: 84,
893+ 0x1a6a: 84,
894+ 0x1a6b: 84,
895+ 0x1a6c: 84,
896+ 0x1a73: 84,
897+ 0x1a74: 84,
898+ 0x1a75: 84,
899+ 0x1a76: 84,
900+ 0x1a77: 84,
901+ 0x1a78: 84,
902+ 0x1a79: 84,
903+ 0x1a7a: 84,
904+ 0x1a7b: 84,
905+ 0x1a7c: 84,
906+ 0x1a7f: 84,
907+ 0x1ab0: 84,
908+ 0x1ab1: 84,
909+ 0x1ab2: 84,
910+ 0x1ab3: 84,
911+ 0x1ab4: 84,
912+ 0x1ab5: 84,
913+ 0x1ab6: 84,
914+ 0x1ab7: 84,
915+ 0x1ab8: 84,
916+ 0x1ab9: 84,
917+ 0x1aba: 84,
918+ 0x1abb: 84,
919+ 0x1abc: 84,
920+ 0x1abd: 84,
921+ 0x1abe: 84,
922+ 0x1abf: 84,
923+ 0x1ac0: 84,
924+ 0x1ac1: 84,
925+ 0x1ac2: 84,
926+ 0x1ac3: 84,
927+ 0x1ac4: 84,
928+ 0x1ac5: 84,
929+ 0x1ac6: 84,
930+ 0x1ac7: 84,
931+ 0x1ac8: 84,
932+ 0x1ac9: 84,
933+ 0x1aca: 84,
934+ 0x1acb: 84,
935+ 0x1acc: 84,
936+ 0x1acd: 84,
937+ 0x1ace: 84,
938+ 0x1b00: 84,
939+ 0x1b01: 84,
940+ 0x1b02: 84,
941+ 0x1b03: 84,
942+ 0x1b34: 84,
943+ 0x1b36: 84,
944+ 0x1b37: 84,
945+ 0x1b38: 84,
946+ 0x1b39: 84,
947+ 0x1b3a: 84,
948+ 0x1b3c: 84,
949+ 0x1b42: 84,
950+ 0x1b6b: 84,
951+ 0x1b6c: 84,
952+ 0x1b6d: 84,
953+ 0x1b6e: 84,
954+ 0x1b6f: 84,
955+ 0x1b70: 84,
956+ 0x1b71: 84,
957+ 0x1b72: 84,
958+ 0x1b73: 84,
959+ 0x1b80: 84,
960+ 0x1b81: 84,
961+ 0x1ba2: 84,
962+ 0x1ba3: 84,
963+ 0x1ba4: 84,
964+ 0x1ba5: 84,
965+ 0x1ba8: 84,
966+ 0x1ba9: 84,
967+ 0x1bab: 84,
968+ 0x1bac: 84,
969+ 0x1bad: 84,
970+ 0x1be6: 84,
971+ 0x1be8: 84,
972+ 0x1be9: 84,
973+ 0x1bed: 84,
974+ 0x1bef: 84,
975+ 0x1bf0: 84,
976+ 0x1bf1: 84,
977+ 0x1c2c: 84,
978+ 0x1c2d: 84,
979+ 0x1c2e: 84,
980+ 0x1c2f: 84,
981+ 0x1c30: 84,
982+ 0x1c31: 84,
983+ 0x1c32: 84,
984+ 0x1c33: 84,
985+ 0x1c36: 84,
986+ 0x1c37: 84,
987+ 0x1cd0: 84,
988+ 0x1cd1: 84,
989+ 0x1cd2: 84,
990+ 0x1cd4: 84,
991+ 0x1cd5: 84,
992+ 0x1cd6: 84,
993+ 0x1cd7: 84,
994+ 0x1cd8: 84,
995+ 0x1cd9: 84,
996+ 0x1cda: 84,
997+ 0x1cdb: 84,
998+ 0x1cdc: 84,
999+ 0x1cdd: 84,
1000+ 0x1cde: 84,
1001+ 0x1cdf: 84,
1002+ 0x1ce0: 84,
1003+ 0x1ce2: 84,
1004+ 0x1ce3: 84,
1005+ 0x1ce4: 84,
1006+ 0x1ce5: 84,
1007+ 0x1ce6: 84,
1008+ 0x1ce7: 84,
1009+ 0x1ce8: 84,
1010+ 0x1ced: 84,
1011+ 0x1cf4: 84,
1012+ 0x1cf8: 84,
1013+ 0x1cf9: 84,
1014+ 0x1dc0: 84,
1015+ 0x1dc1: 84,
1016+ 0x1dc2: 84,
1017+ 0x1dc3: 84,
1018+ 0x1dc4: 84,
1019+ 0x1dc5: 84,
1020+ 0x1dc6: 84,
1021+ 0x1dc7: 84,
1022+ 0x1dc8: 84,
1023+ 0x1dc9: 84,
1024+ 0x1dca: 84,
1025+ 0x1dcb: 84,
1026+ 0x1dcc: 84,
1027+ 0x1dcd: 84,
1028+ 0x1dce: 84,
1029+ 0x1dcf: 84,
1030+ 0x1dd0: 84,
1031+ 0x1dd1: 84,
1032+ 0x1dd2: 84,
1033+ 0x1dd3: 84,
1034+ 0x1dd4: 84,
1035+ 0x1dd5: 84,
1036+ 0x1dd6: 84,
1037+ 0x1dd7: 84,
1038+ 0x1dd8: 84,
1039+ 0x1dd9: 84,
1040+ 0x1dda: 84,
1041+ 0x1ddb: 84,
1042+ 0x1ddc: 84,
1043+ 0x1ddd: 84,
1044+ 0x1dde: 84,
1045+ 0x1ddf: 84,
1046+ 0x1de0: 84,
1047+ 0x1de1: 84,
1048+ 0x1de2: 84,
1049+ 0x1de3: 84,
1050+ 0x1de4: 84,
1051+ 0x1de5: 84,
1052+ 0x1de6: 84,
1053+ 0x1de7: 84,
1054+ 0x1de8: 84,
1055+ 0x1de9: 84,
1056+ 0x1dea: 84,
1057+ 0x1deb: 84,
1058+ 0x1dec: 84,
1059+ 0x1ded: 84,
1060+ 0x1dee: 84,
1061+ 0x1def: 84,
1062+ 0x1df0: 84,
1063+ 0x1df1: 84,
1064+ 0x1df2: 84,
1065+ 0x1df3: 84,
1066+ 0x1df4: 84,
1067+ 0x1df5: 84,
1068+ 0x1df6: 84,
1069+ 0x1df7: 84,
1070+ 0x1df8: 84,
1071+ 0x1df9: 84,
1072+ 0x1dfa: 84,
1073+ 0x1dfb: 84,
1074+ 0x1dfc: 84,
1075+ 0x1dfd: 84,
1076+ 0x1dfe: 84,
1077+ 0x1dff: 84,
1078+ 0x200b: 84,
1079 0x200d: 67,
1080- 0x202f: 85,
1081- 0x2066: 85,
1082- 0x2067: 85,
1083- 0x2068: 85,
1084- 0x2069: 85,
1085+ 0x200e: 84,
1086+ 0x200f: 84,
1087+ 0x202a: 84,
1088+ 0x202b: 84,
1089+ 0x202c: 84,
1090+ 0x202d: 84,
1091+ 0x202e: 84,
1092+ 0x2060: 84,
1093+ 0x2061: 84,
1094+ 0x2062: 84,
1095+ 0x2063: 84,
1096+ 0x2064: 84,
1097+ 0x206a: 84,
1098+ 0x206b: 84,
1099+ 0x206c: 84,
1100+ 0x206d: 84,
1101+ 0x206e: 84,
1102+ 0x206f: 84,
1103+ 0x20d0: 84,
1104+ 0x20d1: 84,
1105+ 0x20d2: 84,
1106+ 0x20d3: 84,
1107+ 0x20d4: 84,
1108+ 0x20d5: 84,
1109+ 0x20d6: 84,
1110+ 0x20d7: 84,
1111+ 0x20d8: 84,
1112+ 0x20d9: 84,
1113+ 0x20da: 84,
1114+ 0x20db: 84,
1115+ 0x20dc: 84,
1116+ 0x20dd: 84,
1117+ 0x20de: 84,
1118+ 0x20df: 84,
1119+ 0x20e0: 84,
1120+ 0x20e1: 84,
1121+ 0x20e2: 84,
1122+ 0x20e3: 84,
1123+ 0x20e4: 84,
1124+ 0x20e5: 84,
1125+ 0x20e6: 84,
1126+ 0x20e7: 84,
1127+ 0x20e8: 84,
1128+ 0x20e9: 84,
1129+ 0x20ea: 84,
1130+ 0x20eb: 84,
1131+ 0x20ec: 84,
1132+ 0x20ed: 84,
1133+ 0x20ee: 84,
1134+ 0x20ef: 84,
1135+ 0x20f0: 84,
1136+ 0x2cef: 84,
1137+ 0x2cf0: 84,
1138+ 0x2cf1: 84,
1139+ 0x2d7f: 84,
1140+ 0x2de0: 84,
1141+ 0x2de1: 84,
1142+ 0x2de2: 84,
1143+ 0x2de3: 84,
1144+ 0x2de4: 84,
1145+ 0x2de5: 84,
1146+ 0x2de6: 84,
1147+ 0x2de7: 84,
1148+ 0x2de8: 84,
1149+ 0x2de9: 84,
1150+ 0x2dea: 84,
1151+ 0x2deb: 84,
1152+ 0x2dec: 84,
1153+ 0x2ded: 84,
1154+ 0x2dee: 84,
1155+ 0x2def: 84,
1156+ 0x2df0: 84,
1157+ 0x2df1: 84,
1158+ 0x2df2: 84,
1159+ 0x2df3: 84,
1160+ 0x2df4: 84,
1161+ 0x2df5: 84,
1162+ 0x2df6: 84,
1163+ 0x2df7: 84,
1164+ 0x2df8: 84,
1165+ 0x2df9: 84,
1166+ 0x2dfa: 84,
1167+ 0x2dfb: 84,
1168+ 0x2dfc: 84,
1169+ 0x2dfd: 84,
1170+ 0x2dfe: 84,
1171+ 0x2dff: 84,
1172+ 0x302a: 84,
1173+ 0x302b: 84,
1174+ 0x302c: 84,
1175+ 0x302d: 84,
1176+ 0x3099: 84,
1177+ 0x309a: 84,
1178+ 0xa66f: 84,
1179+ 0xa670: 84,
1180+ 0xa671: 84,
1181+ 0xa672: 84,
1182+ 0xa674: 84,
1183+ 0xa675: 84,
1184+ 0xa676: 84,
1185+ 0xa677: 84,
1186+ 0xa678: 84,
1187+ 0xa679: 84,
1188+ 0xa67a: 84,
1189+ 0xa67b: 84,
1190+ 0xa67c: 84,
1191+ 0xa67d: 84,
1192+ 0xa69e: 84,
1193+ 0xa69f: 84,
1194+ 0xa6f0: 84,
1195+ 0xa6f1: 84,
1196+ 0xa802: 84,
1197+ 0xa806: 84,
1198+ 0xa80b: 84,
1199+ 0xa825: 84,
1200+ 0xa826: 84,
1201+ 0xa82c: 84,
1202 0xa840: 68,
1203 0xa841: 68,
1204 0xa842: 68,
1205@@ -678,20 +1630,151 @@ joining_types = {
1206 0xa870: 68,
1207 0xa871: 68,
1208 0xa872: 76,
1209- 0xa873: 85,
1210+ 0xa8c4: 84,
1211+ 0xa8c5: 84,
1212+ 0xa8e0: 84,
1213+ 0xa8e1: 84,
1214+ 0xa8e2: 84,
1215+ 0xa8e3: 84,
1216+ 0xa8e4: 84,
1217+ 0xa8e5: 84,
1218+ 0xa8e6: 84,
1219+ 0xa8e7: 84,
1220+ 0xa8e8: 84,
1221+ 0xa8e9: 84,
1222+ 0xa8ea: 84,
1223+ 0xa8eb: 84,
1224+ 0xa8ec: 84,
1225+ 0xa8ed: 84,
1226+ 0xa8ee: 84,
1227+ 0xa8ef: 84,
1228+ 0xa8f0: 84,
1229+ 0xa8f1: 84,
1230+ 0xa8ff: 84,
1231+ 0xa926: 84,
1232+ 0xa927: 84,
1233+ 0xa928: 84,
1234+ 0xa929: 84,
1235+ 0xa92a: 84,
1236+ 0xa92b: 84,
1237+ 0xa92c: 84,
1238+ 0xa92d: 84,
1239+ 0xa947: 84,
1240+ 0xa948: 84,
1241+ 0xa949: 84,
1242+ 0xa94a: 84,
1243+ 0xa94b: 84,
1244+ 0xa94c: 84,
1245+ 0xa94d: 84,
1246+ 0xa94e: 84,
1247+ 0xa94f: 84,
1248+ 0xa950: 84,
1249+ 0xa951: 84,
1250+ 0xa980: 84,
1251+ 0xa981: 84,
1252+ 0xa982: 84,
1253+ 0xa9b3: 84,
1254+ 0xa9b6: 84,
1255+ 0xa9b7: 84,
1256+ 0xa9b8: 84,
1257+ 0xa9b9: 84,
1258+ 0xa9bc: 84,
1259+ 0xa9bd: 84,
1260+ 0xa9e5: 84,
1261+ 0xaa29: 84,
1262+ 0xaa2a: 84,
1263+ 0xaa2b: 84,
1264+ 0xaa2c: 84,
1265+ 0xaa2d: 84,
1266+ 0xaa2e: 84,
1267+ 0xaa31: 84,
1268+ 0xaa32: 84,
1269+ 0xaa35: 84,
1270+ 0xaa36: 84,
1271+ 0xaa43: 84,
1272+ 0xaa4c: 84,
1273+ 0xaa7c: 84,
1274+ 0xaab0: 84,
1275+ 0xaab2: 84,
1276+ 0xaab3: 84,
1277+ 0xaab4: 84,
1278+ 0xaab7: 84,
1279+ 0xaab8: 84,
1280+ 0xaabe: 84,
1281+ 0xaabf: 84,
1282+ 0xaac1: 84,
1283+ 0xaaec: 84,
1284+ 0xaaed: 84,
1285+ 0xaaf6: 84,
1286+ 0xabe5: 84,
1287+ 0xabe8: 84,
1288+ 0xabed: 84,
1289+ 0xfb1e: 84,
1290+ 0xfe00: 84,
1291+ 0xfe01: 84,
1292+ 0xfe02: 84,
1293+ 0xfe03: 84,
1294+ 0xfe04: 84,
1295+ 0xfe05: 84,
1296+ 0xfe06: 84,
1297+ 0xfe07: 84,
1298+ 0xfe08: 84,
1299+ 0xfe09: 84,
1300+ 0xfe0a: 84,
1301+ 0xfe0b: 84,
1302+ 0xfe0c: 84,
1303+ 0xfe0d: 84,
1304+ 0xfe0e: 84,
1305+ 0xfe0f: 84,
1306+ 0xfe20: 84,
1307+ 0xfe21: 84,
1308+ 0xfe22: 84,
1309+ 0xfe23: 84,
1310+ 0xfe24: 84,
1311+ 0xfe25: 84,
1312+ 0xfe26: 84,
1313+ 0xfe27: 84,
1314+ 0xfe28: 84,
1315+ 0xfe29: 84,
1316+ 0xfe2a: 84,
1317+ 0xfe2b: 84,
1318+ 0xfe2c: 84,
1319+ 0xfe2d: 84,
1320+ 0xfe2e: 84,
1321+ 0xfe2f: 84,
1322+ 0xfeff: 84,
1323+ 0xfff9: 84,
1324+ 0xfffa: 84,
1325+ 0xfffb: 84,
1326+ 0x101fd: 84,
1327+ 0x102e0: 84,
1328+ 0x10376: 84,
1329+ 0x10377: 84,
1330+ 0x10378: 84,
1331+ 0x10379: 84,
1332+ 0x1037a: 84,
1333+ 0x10a01: 84,
1334+ 0x10a02: 84,
1335+ 0x10a03: 84,
1336+ 0x10a05: 84,
1337+ 0x10a06: 84,
1338+ 0x10a0c: 84,
1339+ 0x10a0d: 84,
1340+ 0x10a0e: 84,
1341+ 0x10a0f: 84,
1342+ 0x10a38: 84,
1343+ 0x10a39: 84,
1344+ 0x10a3a: 84,
1345+ 0x10a3f: 84,
1346 0x10ac0: 68,
1347 0x10ac1: 68,
1348 0x10ac2: 68,
1349 0x10ac3: 68,
1350 0x10ac4: 68,
1351 0x10ac5: 82,
1352- 0x10ac6: 85,
1353 0x10ac7: 82,
1354- 0x10ac8: 85,
1355 0x10ac9: 82,
1356 0x10aca: 82,
1357- 0x10acb: 85,
1358- 0x10acc: 85,
1359 0x10acd: 76,
1360 0x10ace: 82,
1361 0x10acf: 82,
1362@@ -713,9 +1796,9 @@ joining_types = {
1363 0x10adf: 68,
1364 0x10ae0: 68,
1365 0x10ae1: 82,
1366- 0x10ae2: 85,
1367- 0x10ae3: 85,
1368 0x10ae4: 82,
1369+ 0x10ae5: 84,
1370+ 0x10ae6: 84,
1371 0x10aeb: 68,
1372 0x10aec: 68,
1373 0x10aed: 68,
1374@@ -745,7 +1828,6 @@ joining_types = {
1375 0x10bac: 82,
1376 0x10bad: 68,
1377 0x10bae: 68,
1378- 0x10baf: 85,
1379 0x10d00: 76,
1380 0x10d01: 68,
1381 0x10d02: 68,
1382@@ -782,6 +1864,12 @@ joining_types = {
1383 0x10d21: 68,
1384 0x10d22: 82,
1385 0x10d23: 68,
1386+ 0x10d24: 84,
1387+ 0x10d25: 84,
1388+ 0x10d26: 84,
1389+ 0x10d27: 84,
1390+ 0x10eab: 84,
1391+ 0x10eac: 84,
1392 0x10f30: 68,
1393 0x10f31: 68,
1394 0x10f32: 68,
1395@@ -803,7 +1891,17 @@ joining_types = {
1396 0x10f42: 68,
1397 0x10f43: 68,
1398 0x10f44: 68,
1399- 0x10f45: 85,
1400+ 0x10f46: 84,
1401+ 0x10f47: 84,
1402+ 0x10f48: 84,
1403+ 0x10f49: 84,
1404+ 0x10f4a: 84,
1405+ 0x10f4b: 84,
1406+ 0x10f4c: 84,
1407+ 0x10f4d: 84,
1408+ 0x10f4e: 84,
1409+ 0x10f4f: 84,
1410+ 0x10f50: 84,
1411 0x10f51: 68,
1412 0x10f52: 68,
1413 0x10f53: 68,
1414@@ -826,14 +1924,16 @@ joining_types = {
1415 0x10f7f: 68,
1416 0x10f80: 68,
1417 0x10f81: 68,
1418+ 0x10f82: 84,
1419+ 0x10f83: 84,
1420+ 0x10f84: 84,
1421+ 0x10f85: 84,
1422 0x10fb0: 68,
1423- 0x10fb1: 85,
1424 0x10fb2: 68,
1425 0x10fb3: 68,
1426 0x10fb4: 82,
1427 0x10fb5: 82,
1428 0x10fb6: 82,
1429- 0x10fb7: 85,
1430 0x10fb8: 68,
1431 0x10fb9: 82,
1432 0x10fba: 82,
1433@@ -842,20 +1942,630 @@ joining_types = {
1434 0x10fbd: 82,
1435 0x10fbe: 68,
1436 0x10fbf: 68,
1437- 0x10fc0: 85,
1438 0x10fc1: 68,
1439 0x10fc2: 82,
1440 0x10fc3: 82,
1441 0x10fc4: 68,
1442- 0x10fc5: 85,
1443- 0x10fc6: 85,
1444- 0x10fc7: 85,
1445- 0x10fc8: 85,
1446 0x10fc9: 82,
1447 0x10fca: 68,
1448 0x10fcb: 76,
1449- 0x110bd: 85,
1450- 0x110cd: 85,
1451+ 0x11001: 84,
1452+ 0x11038: 84,
1453+ 0x11039: 84,
1454+ 0x1103a: 84,
1455+ 0x1103b: 84,
1456+ 0x1103c: 84,
1457+ 0x1103d: 84,
1458+ 0x1103e: 84,
1459+ 0x1103f: 84,
1460+ 0x11040: 84,
1461+ 0x11041: 84,
1462+ 0x11042: 84,
1463+ 0x11043: 84,
1464+ 0x11044: 84,
1465+ 0x11045: 84,
1466+ 0x11046: 84,
1467+ 0x11070: 84,
1468+ 0x11073: 84,
1469+ 0x11074: 84,
1470+ 0x1107f: 84,
1471+ 0x11080: 84,
1472+ 0x11081: 84,
1473+ 0x110b3: 84,
1474+ 0x110b4: 84,
1475+ 0x110b5: 84,
1476+ 0x110b6: 84,
1477+ 0x110b9: 84,
1478+ 0x110ba: 84,
1479+ 0x110c2: 84,
1480+ 0x11100: 84,
1481+ 0x11101: 84,
1482+ 0x11102: 84,
1483+ 0x11127: 84,
1484+ 0x11128: 84,
1485+ 0x11129: 84,
1486+ 0x1112a: 84,
1487+ 0x1112b: 84,
1488+ 0x1112d: 84,
1489+ 0x1112e: 84,
1490+ 0x1112f: 84,
1491+ 0x11130: 84,
1492+ 0x11131: 84,
1493+ 0x11132: 84,
1494+ 0x11133: 84,
1495+ 0x11134: 84,
1496+ 0x11173: 84,
1497+ 0x11180: 84,
1498+ 0x11181: 84,
1499+ 0x111b6: 84,
1500+ 0x111b7: 84,
1501+ 0x111b8: 84,
1502+ 0x111b9: 84,
1503+ 0x111ba: 84,
1504+ 0x111bb: 84,
1505+ 0x111bc: 84,
1506+ 0x111bd: 84,
1507+ 0x111be: 84,
1508+ 0x111c9: 84,
1509+ 0x111ca: 84,
1510+ 0x111cb: 84,
1511+ 0x111cc: 84,
1512+ 0x111cf: 84,
1513+ 0x1122f: 84,
1514+ 0x11230: 84,
1515+ 0x11231: 84,
1516+ 0x11234: 84,
1517+ 0x11236: 84,
1518+ 0x11237: 84,
1519+ 0x1123e: 84,
1520+ 0x112df: 84,
1521+ 0x112e3: 84,
1522+ 0x112e4: 84,
1523+ 0x112e5: 84,
1524+ 0x112e6: 84,
1525+ 0x112e7: 84,
1526+ 0x112e8: 84,
1527+ 0x112e9: 84,
1528+ 0x112ea: 84,
1529+ 0x11300: 84,
1530+ 0x11301: 84,
1531+ 0x1133b: 84,
1532+ 0x1133c: 84,
1533+ 0x11340: 84,
1534+ 0x11366: 84,
1535+ 0x11367: 84,
1536+ 0x11368: 84,
1537+ 0x11369: 84,
1538+ 0x1136a: 84,
1539+ 0x1136b: 84,
1540+ 0x1136c: 84,
1541+ 0x11370: 84,
1542+ 0x11371: 84,
1543+ 0x11372: 84,
1544+ 0x11373: 84,
1545+ 0x11374: 84,
1546+ 0x11438: 84,
1547+ 0x11439: 84,
1548+ 0x1143a: 84,
1549+ 0x1143b: 84,
1550+ 0x1143c: 84,
1551+ 0x1143d: 84,
1552+ 0x1143e: 84,
1553+ 0x1143f: 84,
1554+ 0x11442: 84,
1555+ 0x11443: 84,
1556+ 0x11444: 84,
1557+ 0x11446: 84,
1558+ 0x1145e: 84,
1559+ 0x114b3: 84,
1560+ 0x114b4: 84,
1561+ 0x114b5: 84,
1562+ 0x114b6: 84,
1563+ 0x114b7: 84,
1564+ 0x114b8: 84,
1565+ 0x114ba: 84,
1566+ 0x114bf: 84,
1567+ 0x114c0: 84,
1568+ 0x114c2: 84,
1569+ 0x114c3: 84,
1570+ 0x115b2: 84,
1571+ 0x115b3: 84,
1572+ 0x115b4: 84,
1573+ 0x115b5: 84,
1574+ 0x115bc: 84,
1575+ 0x115bd: 84,
1576+ 0x115bf: 84,
1577+ 0x115c0: 84,
1578+ 0x115dc: 84,
1579+ 0x115dd: 84,
1580+ 0x11633: 84,
1581+ 0x11634: 84,
1582+ 0x11635: 84,
1583+ 0x11636: 84,
1584+ 0x11637: 84,
1585+ 0x11638: 84,
1586+ 0x11639: 84,
1587+ 0x1163a: 84,
1588+ 0x1163d: 84,
1589+ 0x1163f: 84,
1590+ 0x11640: 84,
1591+ 0x116ab: 84,
1592+ 0x116ad: 84,
1593+ 0x116b0: 84,
1594+ 0x116b1: 84,
1595+ 0x116b2: 84,
1596+ 0x116b3: 84,
1597+ 0x116b4: 84,
1598+ 0x116b5: 84,
1599+ 0x116b7: 84,
1600+ 0x1171d: 84,
1601+ 0x1171e: 84,
1602+ 0x1171f: 84,
1603+ 0x11722: 84,
1604+ 0x11723: 84,
1605+ 0x11724: 84,
1606+ 0x11725: 84,
1607+ 0x11727: 84,
1608+ 0x11728: 84,
1609+ 0x11729: 84,
1610+ 0x1172a: 84,
1611+ 0x1172b: 84,
1612+ 0x1182f: 84,
1613+ 0x11830: 84,
1614+ 0x11831: 84,
1615+ 0x11832: 84,
1616+ 0x11833: 84,
1617+ 0x11834: 84,
1618+ 0x11835: 84,
1619+ 0x11836: 84,
1620+ 0x11837: 84,
1621+ 0x11839: 84,
1622+ 0x1183a: 84,
1623+ 0x1193b: 84,
1624+ 0x1193c: 84,
1625+ 0x1193e: 84,
1626+ 0x11943: 84,
1627+ 0x119d4: 84,
1628+ 0x119d5: 84,
1629+ 0x119d6: 84,
1630+ 0x119d7: 84,
1631+ 0x119da: 84,
1632+ 0x119db: 84,
1633+ 0x119e0: 84,
1634+ 0x11a01: 84,
1635+ 0x11a02: 84,
1636+ 0x11a03: 84,
1637+ 0x11a04: 84,
1638+ 0x11a05: 84,
1639+ 0x11a06: 84,
1640+ 0x11a07: 84,
1641+ 0x11a08: 84,
1642+ 0x11a09: 84,
1643+ 0x11a0a: 84,
1644+ 0x11a33: 84,
1645+ 0x11a34: 84,
1646+ 0x11a35: 84,
1647+ 0x11a36: 84,
1648+ 0x11a37: 84,
1649+ 0x11a38: 84,
1650+ 0x11a3b: 84,
1651+ 0x11a3c: 84,
1652+ 0x11a3d: 84,
1653+ 0x11a3e: 84,
1654+ 0x11a47: 84,
1655+ 0x11a51: 84,
1656+ 0x11a52: 84,
1657+ 0x11a53: 84,
1658+ 0x11a54: 84,
1659+ 0x11a55: 84,
1660+ 0x11a56: 84,
1661+ 0x11a59: 84,
1662+ 0x11a5a: 84,
1663+ 0x11a5b: 84,
1664+ 0x11a8a: 84,
1665+ 0x11a8b: 84,
1666+ 0x11a8c: 84,
1667+ 0x11a8d: 84,
1668+ 0x11a8e: 84,
1669+ 0x11a8f: 84,
1670+ 0x11a90: 84,
1671+ 0x11a91: 84,
1672+ 0x11a92: 84,
1673+ 0x11a93: 84,
1674+ 0x11a94: 84,
1675+ 0x11a95: 84,
1676+ 0x11a96: 84,
1677+ 0x11a98: 84,
1678+ 0x11a99: 84,
1679+ 0x11c30: 84,
1680+ 0x11c31: 84,
1681+ 0x11c32: 84,
1682+ 0x11c33: 84,
1683+ 0x11c34: 84,
1684+ 0x11c35: 84,
1685+ 0x11c36: 84,
1686+ 0x11c38: 84,
1687+ 0x11c39: 84,
1688+ 0x11c3a: 84,
1689+ 0x11c3b: 84,
1690+ 0x11c3c: 84,
1691+ 0x11c3d: 84,
1692+ 0x11c3f: 84,
1693+ 0x11c92: 84,
1694+ 0x11c93: 84,
1695+ 0x11c94: 84,
1696+ 0x11c95: 84,
1697+ 0x11c96: 84,
1698+ 0x11c97: 84,
1699+ 0x11c98: 84,
1700+ 0x11c99: 84,
1701+ 0x11c9a: 84,
1702+ 0x11c9b: 84,
1703+ 0x11c9c: 84,
1704+ 0x11c9d: 84,
1705+ 0x11c9e: 84,
1706+ 0x11c9f: 84,
1707+ 0x11ca0: 84,
1708+ 0x11ca1: 84,
1709+ 0x11ca2: 84,
1710+ 0x11ca3: 84,
1711+ 0x11ca4: 84,
1712+ 0x11ca5: 84,
1713+ 0x11ca6: 84,
1714+ 0x11ca7: 84,
1715+ 0x11caa: 84,
1716+ 0x11cab: 84,
1717+ 0x11cac: 84,
1718+ 0x11cad: 84,
1719+ 0x11cae: 84,
1720+ 0x11caf: 84,
1721+ 0x11cb0: 84,
1722+ 0x11cb2: 84,
1723+ 0x11cb3: 84,
1724+ 0x11cb5: 84,
1725+ 0x11cb6: 84,
1726+ 0x11d31: 84,
1727+ 0x11d32: 84,
1728+ 0x11d33: 84,
1729+ 0x11d34: 84,
1730+ 0x11d35: 84,
1731+ 0x11d36: 84,
1732+ 0x11d3a: 84,
1733+ 0x11d3c: 84,
1734+ 0x11d3d: 84,
1735+ 0x11d3f: 84,
1736+ 0x11d40: 84,
1737+ 0x11d41: 84,
1738+ 0x11d42: 84,
1739+ 0x11d43: 84,
1740+ 0x11d44: 84,
1741+ 0x11d45: 84,
1742+ 0x11d47: 84,
1743+ 0x11d90: 84,
1744+ 0x11d91: 84,
1745+ 0x11d95: 84,
1746+ 0x11d97: 84,
1747+ 0x11ef3: 84,
1748+ 0x11ef4: 84,
1749+ 0x13430: 84,
1750+ 0x13431: 84,
1751+ 0x13432: 84,
1752+ 0x13433: 84,
1753+ 0x13434: 84,
1754+ 0x13435: 84,
1755+ 0x13436: 84,
1756+ 0x13437: 84,
1757+ 0x13438: 84,
1758+ 0x16af0: 84,
1759+ 0x16af1: 84,
1760+ 0x16af2: 84,
1761+ 0x16af3: 84,
1762+ 0x16af4: 84,
1763+ 0x16b30: 84,
1764+ 0x16b31: 84,
1765+ 0x16b32: 84,
1766+ 0x16b33: 84,
1767+ 0x16b34: 84,
1768+ 0x16b35: 84,
1769+ 0x16b36: 84,
1770+ 0x16f4f: 84,
1771+ 0x16f8f: 84,
1772+ 0x16f90: 84,
1773+ 0x16f91: 84,
1774+ 0x16f92: 84,
1775+ 0x16fe4: 84,
1776+ 0x1bc9d: 84,
1777+ 0x1bc9e: 84,
1778+ 0x1bca0: 84,
1779+ 0x1bca1: 84,
1780+ 0x1bca2: 84,
1781+ 0x1bca3: 84,
1782+ 0x1cf00: 84,
1783+ 0x1cf01: 84,
1784+ 0x1cf02: 84,
1785+ 0x1cf03: 84,
1786+ 0x1cf04: 84,
1787+ 0x1cf05: 84,
1788+ 0x1cf06: 84,
1789+ 0x1cf07: 84,
1790+ 0x1cf08: 84,
1791+ 0x1cf09: 84,
1792+ 0x1cf0a: 84,
1793+ 0x1cf0b: 84,
1794+ 0x1cf0c: 84,
1795+ 0x1cf0d: 84,
1796+ 0x1cf0e: 84,
1797+ 0x1cf0f: 84,
1798+ 0x1cf10: 84,
1799+ 0x1cf11: 84,
1800+ 0x1cf12: 84,
1801+ 0x1cf13: 84,
1802+ 0x1cf14: 84,
1803+ 0x1cf15: 84,
1804+ 0x1cf16: 84,
1805+ 0x1cf17: 84,
1806+ 0x1cf18: 84,
1807+ 0x1cf19: 84,
1808+ 0x1cf1a: 84,
1809+ 0x1cf1b: 84,
1810+ 0x1cf1c: 84,
1811+ 0x1cf1d: 84,
1812+ 0x1cf1e: 84,
1813+ 0x1cf1f: 84,
1814+ 0x1cf20: 84,
1815+ 0x1cf21: 84,
1816+ 0x1cf22: 84,
1817+ 0x1cf23: 84,
1818+ 0x1cf24: 84,
1819+ 0x1cf25: 84,
1820+ 0x1cf26: 84,
1821+ 0x1cf27: 84,
1822+ 0x1cf28: 84,
1823+ 0x1cf29: 84,
1824+ 0x1cf2a: 84,
1825+ 0x1cf2b: 84,
1826+ 0x1cf2c: 84,
1827+ 0x1cf2d: 84,
1828+ 0x1cf30: 84,
1829+ 0x1cf31: 84,
1830+ 0x1cf32: 84,
1831+ 0x1cf33: 84,
1832+ 0x1cf34: 84,
1833+ 0x1cf35: 84,
1834+ 0x1cf36: 84,
1835+ 0x1cf37: 84,
1836+ 0x1cf38: 84,
1837+ 0x1cf39: 84,
1838+ 0x1cf3a: 84,
1839+ 0x1cf3b: 84,
1840+ 0x1cf3c: 84,
1841+ 0x1cf3d: 84,
1842+ 0x1cf3e: 84,
1843+ 0x1cf3f: 84,
1844+ 0x1cf40: 84,
1845+ 0x1cf41: 84,
1846+ 0x1cf42: 84,
1847+ 0x1cf43: 84,
1848+ 0x1cf44: 84,
1849+ 0x1cf45: 84,
1850+ 0x1cf46: 84,
1851+ 0x1d167: 84,
1852+ 0x1d168: 84,
1853+ 0x1d169: 84,
1854+ 0x1d173: 84,
1855+ 0x1d174: 84,
1856+ 0x1d175: 84,
1857+ 0x1d176: 84,
1858+ 0x1d177: 84,
1859+ 0x1d178: 84,
1860+ 0x1d179: 84,
1861+ 0x1d17a: 84,
1862+ 0x1d17b: 84,
1863+ 0x1d17c: 84,
1864+ 0x1d17d: 84,
1865+ 0x1d17e: 84,
1866+ 0x1d17f: 84,
1867+ 0x1d180: 84,
1868+ 0x1d181: 84,
1869+ 0x1d182: 84,
1870+ 0x1d185: 84,
1871+ 0x1d186: 84,
1872+ 0x1d187: 84,
1873+ 0x1d188: 84,
1874+ 0x1d189: 84,
1875+ 0x1d18a: 84,
1876+ 0x1d18b: 84,
1877+ 0x1d1aa: 84,
1878+ 0x1d1ab: 84,
1879+ 0x1d1ac: 84,
1880+ 0x1d1ad: 84,
1881+ 0x1d242: 84,
1882+ 0x1d243: 84,
1883+ 0x1d244: 84,
1884+ 0x1da00: 84,
1885+ 0x1da01: 84,
1886+ 0x1da02: 84,
1887+ 0x1da03: 84,
1888+ 0x1da04: 84,
1889+ 0x1da05: 84,
1890+ 0x1da06: 84,
1891+ 0x1da07: 84,
1892+ 0x1da08: 84,
1893+ 0x1da09: 84,
1894+ 0x1da0a: 84,
1895+ 0x1da0b: 84,
1896+ 0x1da0c: 84,
1897+ 0x1da0d: 84,
1898+ 0x1da0e: 84,
1899+ 0x1da0f: 84,
1900+ 0x1da10: 84,
1901+ 0x1da11: 84,
1902+ 0x1da12: 84,
1903+ 0x1da13: 84,
1904+ 0x1da14: 84,
1905+ 0x1da15: 84,
1906+ 0x1da16: 84,
1907+ 0x1da17: 84,
1908+ 0x1da18: 84,
1909+ 0x1da19: 84,
1910+ 0x1da1a: 84,
1911+ 0x1da1b: 84,
1912+ 0x1da1c: 84,
1913+ 0x1da1d: 84,
1914+ 0x1da1e: 84,
1915+ 0x1da1f: 84,
1916+ 0x1da20: 84,
1917+ 0x1da21: 84,
1918+ 0x1da22: 84,
1919+ 0x1da23: 84,
1920+ 0x1da24: 84,
1921+ 0x1da25: 84,
1922+ 0x1da26: 84,
1923+ 0x1da27: 84,
1924+ 0x1da28: 84,
1925+ 0x1da29: 84,
1926+ 0x1da2a: 84,
1927+ 0x1da2b: 84,
1928+ 0x1da2c: 84,
1929+ 0x1da2d: 84,
1930+ 0x1da2e: 84,
1931+ 0x1da2f: 84,
1932+ 0x1da30: 84,
1933+ 0x1da31: 84,
1934+ 0x1da32: 84,
1935+ 0x1da33: 84,
1936+ 0x1da34: 84,
1937+ 0x1da35: 84,
1938+ 0x1da36: 84,
1939+ 0x1da3b: 84,
1940+ 0x1da3c: 84,
1941+ 0x1da3d: 84,
1942+ 0x1da3e: 84,
1943+ 0x1da3f: 84,
1944+ 0x1da40: 84,
1945+ 0x1da41: 84,
1946+ 0x1da42: 84,
1947+ 0x1da43: 84,
1948+ 0x1da44: 84,
1949+ 0x1da45: 84,
1950+ 0x1da46: 84,
1951+ 0x1da47: 84,
1952+ 0x1da48: 84,
1953+ 0x1da49: 84,
1954+ 0x1da4a: 84,
1955+ 0x1da4b: 84,
1956+ 0x1da4c: 84,
1957+ 0x1da4d: 84,
1958+ 0x1da4e: 84,
1959+ 0x1da4f: 84,
1960+ 0x1da50: 84,
1961+ 0x1da51: 84,
1962+ 0x1da52: 84,
1963+ 0x1da53: 84,
1964+ 0x1da54: 84,
1965+ 0x1da55: 84,
1966+ 0x1da56: 84,
1967+ 0x1da57: 84,
1968+ 0x1da58: 84,
1969+ 0x1da59: 84,
1970+ 0x1da5a: 84,
1971+ 0x1da5b: 84,
1972+ 0x1da5c: 84,
1973+ 0x1da5d: 84,
1974+ 0x1da5e: 84,
1975+ 0x1da5f: 84,
1976+ 0x1da60: 84,
1977+ 0x1da61: 84,
1978+ 0x1da62: 84,
1979+ 0x1da63: 84,
1980+ 0x1da64: 84,
1981+ 0x1da65: 84,
1982+ 0x1da66: 84,
1983+ 0x1da67: 84,
1984+ 0x1da68: 84,
1985+ 0x1da69: 84,
1986+ 0x1da6a: 84,
1987+ 0x1da6b: 84,
1988+ 0x1da6c: 84,
1989+ 0x1da75: 84,
1990+ 0x1da84: 84,
1991+ 0x1da9b: 84,
1992+ 0x1da9c: 84,
1993+ 0x1da9d: 84,
1994+ 0x1da9e: 84,
1995+ 0x1da9f: 84,
1996+ 0x1daa1: 84,
1997+ 0x1daa2: 84,
1998+ 0x1daa3: 84,
1999+ 0x1daa4: 84,
2000+ 0x1daa5: 84,
2001+ 0x1daa6: 84,
2002+ 0x1daa7: 84,
2003+ 0x1daa8: 84,
2004+ 0x1daa9: 84,
2005+ 0x1daaa: 84,
2006+ 0x1daab: 84,
2007+ 0x1daac: 84,
2008+ 0x1daad: 84,
2009+ 0x1daae: 84,
2010+ 0x1daaf: 84,
2011+ 0x1e000: 84,
2012+ 0x1e001: 84,
2013+ 0x1e002: 84,
2014+ 0x1e003: 84,
2015+ 0x1e004: 84,
2016+ 0x1e005: 84,
2017+ 0x1e006: 84,
2018+ 0x1e008: 84,
2019+ 0x1e009: 84,
2020+ 0x1e00a: 84,
2021+ 0x1e00b: 84,
2022+ 0x1e00c: 84,
2023+ 0x1e00d: 84,
2024+ 0x1e00e: 84,
2025+ 0x1e00f: 84,
2026+ 0x1e010: 84,
2027+ 0x1e011: 84,
2028+ 0x1e012: 84,
2029+ 0x1e013: 84,
2030+ 0x1e014: 84,
2031+ 0x1e015: 84,
2032+ 0x1e016: 84,
2033+ 0x1e017: 84,
2034+ 0x1e018: 84,
2035+ 0x1e01b: 84,
2036+ 0x1e01c: 84,
2037+ 0x1e01d: 84,
2038+ 0x1e01e: 84,
2039+ 0x1e01f: 84,
2040+ 0x1e020: 84,
2041+ 0x1e021: 84,
2042+ 0x1e023: 84,
2043+ 0x1e024: 84,
2044+ 0x1e026: 84,
2045+ 0x1e027: 84,
2046+ 0x1e028: 84,
2047+ 0x1e029: 84,
2048+ 0x1e02a: 84,
2049+ 0x1e130: 84,
2050+ 0x1e131: 84,
2051+ 0x1e132: 84,
2052+ 0x1e133: 84,
2053+ 0x1e134: 84,
2054+ 0x1e135: 84,
2055+ 0x1e136: 84,
2056+ 0x1e2ae: 84,
2057+ 0x1e2ec: 84,
2058+ 0x1e2ed: 84,
2059+ 0x1e2ee: 84,
2060+ 0x1e2ef: 84,
2061+ 0x1e8d0: 84,
2062+ 0x1e8d1: 84,
2063+ 0x1e8d2: 84,
2064+ 0x1e8d3: 84,
2065+ 0x1e8d4: 84,
2066+ 0x1e8d5: 84,
2067+ 0x1e8d6: 84,
2068 0x1e900: 68,
2069 0x1e901: 68,
2070 0x1e902: 68,
2071@@ -924,7 +2634,351 @@ joining_types = {
2072 0x1e941: 68,
2073 0x1e942: 68,
2074 0x1e943: 68,
2075+ 0x1e944: 84,
2076+ 0x1e945: 84,
2077+ 0x1e946: 84,
2078+ 0x1e947: 84,
2079+ 0x1e948: 84,
2080+ 0x1e949: 84,
2081+ 0x1e94a: 84,
2082 0x1e94b: 84,
2083+ 0xe0001: 84,
2084+ 0xe0020: 84,
2085+ 0xe0021: 84,
2086+ 0xe0022: 84,
2087+ 0xe0023: 84,
2088+ 0xe0024: 84,
2089+ 0xe0025: 84,
2090+ 0xe0026: 84,
2091+ 0xe0027: 84,
2092+ 0xe0028: 84,
2093+ 0xe0029: 84,
2094+ 0xe002a: 84,
2095+ 0xe002b: 84,
2096+ 0xe002c: 84,
2097+ 0xe002d: 84,
2098+ 0xe002e: 84,
2099+ 0xe002f: 84,
2100+ 0xe0030: 84,
2101+ 0xe0031: 84,
2102+ 0xe0032: 84,
2103+ 0xe0033: 84,
2104+ 0xe0034: 84,
2105+ 0xe0035: 84,
2106+ 0xe0036: 84,
2107+ 0xe0037: 84,
2108+ 0xe0038: 84,
2109+ 0xe0039: 84,
2110+ 0xe003a: 84,
2111+ 0xe003b: 84,
2112+ 0xe003c: 84,
2113+ 0xe003d: 84,
2114+ 0xe003e: 84,
2115+ 0xe003f: 84,
2116+ 0xe0040: 84,
2117+ 0xe0041: 84,
2118+ 0xe0042: 84,
2119+ 0xe0043: 84,
2120+ 0xe0044: 84,
2121+ 0xe0045: 84,
2122+ 0xe0046: 84,
2123+ 0xe0047: 84,
2124+ 0xe0048: 84,
2125+ 0xe0049: 84,
2126+ 0xe004a: 84,
2127+ 0xe004b: 84,
2128+ 0xe004c: 84,
2129+ 0xe004d: 84,
2130+ 0xe004e: 84,
2131+ 0xe004f: 84,
2132+ 0xe0050: 84,
2133+ 0xe0051: 84,
2134+ 0xe0052: 84,
2135+ 0xe0053: 84,
2136+ 0xe0054: 84,
2137+ 0xe0055: 84,
2138+ 0xe0056: 84,
2139+ 0xe0057: 84,
2140+ 0xe0058: 84,
2141+ 0xe0059: 84,
2142+ 0xe005a: 84,
2143+ 0xe005b: 84,
2144+ 0xe005c: 84,
2145+ 0xe005d: 84,
2146+ 0xe005e: 84,
2147+ 0xe005f: 84,
2148+ 0xe0060: 84,
2149+ 0xe0061: 84,
2150+ 0xe0062: 84,
2151+ 0xe0063: 84,
2152+ 0xe0064: 84,
2153+ 0xe0065: 84,
2154+ 0xe0066: 84,
2155+ 0xe0067: 84,
2156+ 0xe0068: 84,
2157+ 0xe0069: 84,
2158+ 0xe006a: 84,
2159+ 0xe006b: 84,
2160+ 0xe006c: 84,
2161+ 0xe006d: 84,
2162+ 0xe006e: 84,
2163+ 0xe006f: 84,
2164+ 0xe0070: 84,
2165+ 0xe0071: 84,
2166+ 0xe0072: 84,
2167+ 0xe0073: 84,
2168+ 0xe0074: 84,
2169+ 0xe0075: 84,
2170+ 0xe0076: 84,
2171+ 0xe0077: 84,
2172+ 0xe0078: 84,
2173+ 0xe0079: 84,
2174+ 0xe007a: 84,
2175+ 0xe007b: 84,
2176+ 0xe007c: 84,
2177+ 0xe007d: 84,
2178+ 0xe007e: 84,
2179+ 0xe007f: 84,
2180+ 0xe0100: 84,
2181+ 0xe0101: 84,
2182+ 0xe0102: 84,
2183+ 0xe0103: 84,
2184+ 0xe0104: 84,
2185+ 0xe0105: 84,
2186+ 0xe0106: 84,
2187+ 0xe0107: 84,
2188+ 0xe0108: 84,
2189+ 0xe0109: 84,
2190+ 0xe010a: 84,
2191+ 0xe010b: 84,
2192+ 0xe010c: 84,
2193+ 0xe010d: 84,
2194+ 0xe010e: 84,
2195+ 0xe010f: 84,
2196+ 0xe0110: 84,
2197+ 0xe0111: 84,
2198+ 0xe0112: 84,
2199+ 0xe0113: 84,
2200+ 0xe0114: 84,
2201+ 0xe0115: 84,
2202+ 0xe0116: 84,
2203+ 0xe0117: 84,
2204+ 0xe0118: 84,
2205+ 0xe0119: 84,
2206+ 0xe011a: 84,
2207+ 0xe011b: 84,
2208+ 0xe011c: 84,
2209+ 0xe011d: 84,
2210+ 0xe011e: 84,
2211+ 0xe011f: 84,
2212+ 0xe0120: 84,
2213+ 0xe0121: 84,
2214+ 0xe0122: 84,
2215+ 0xe0123: 84,
2216+ 0xe0124: 84,
2217+ 0xe0125: 84,
2218+ 0xe0126: 84,
2219+ 0xe0127: 84,
2220+ 0xe0128: 84,
2221+ 0xe0129: 84,
2222+ 0xe012a: 84,
2223+ 0xe012b: 84,
2224+ 0xe012c: 84,
2225+ 0xe012d: 84,
2226+ 0xe012e: 84,
2227+ 0xe012f: 84,
2228+ 0xe0130: 84,
2229+ 0xe0131: 84,
2230+ 0xe0132: 84,
2231+ 0xe0133: 84,
2232+ 0xe0134: 84,
2233+ 0xe0135: 84,
2234+ 0xe0136: 84,
2235+ 0xe0137: 84,
2236+ 0xe0138: 84,
2237+ 0xe0139: 84,
2238+ 0xe013a: 84,
2239+ 0xe013b: 84,
2240+ 0xe013c: 84,
2241+ 0xe013d: 84,
2242+ 0xe013e: 84,
2243+ 0xe013f: 84,
2244+ 0xe0140: 84,
2245+ 0xe0141: 84,
2246+ 0xe0142: 84,
2247+ 0xe0143: 84,
2248+ 0xe0144: 84,
2249+ 0xe0145: 84,
2250+ 0xe0146: 84,
2251+ 0xe0147: 84,
2252+ 0xe0148: 84,
2253+ 0xe0149: 84,
2254+ 0xe014a: 84,
2255+ 0xe014b: 84,
2256+ 0xe014c: 84,
2257+ 0xe014d: 84,
2258+ 0xe014e: 84,
2259+ 0xe014f: 84,
2260+ 0xe0150: 84,
2261+ 0xe0151: 84,
2262+ 0xe0152: 84,
2263+ 0xe0153: 84,
2264+ 0xe0154: 84,
2265+ 0xe0155: 84,
2266+ 0xe0156: 84,
2267+ 0xe0157: 84,
2268+ 0xe0158: 84,
2269+ 0xe0159: 84,
2270+ 0xe015a: 84,
2271+ 0xe015b: 84,
2272+ 0xe015c: 84,
2273+ 0xe015d: 84,
2274+ 0xe015e: 84,
2275+ 0xe015f: 84,
2276+ 0xe0160: 84,
2277+ 0xe0161: 84,
2278+ 0xe0162: 84,
2279+ 0xe0163: 84,
2280+ 0xe0164: 84,
2281+ 0xe0165: 84,
2282+ 0xe0166: 84,
2283+ 0xe0167: 84,
2284+ 0xe0168: 84,
2285+ 0xe0169: 84,
2286+ 0xe016a: 84,
2287+ 0xe016b: 84,
2288+ 0xe016c: 84,
2289+ 0xe016d: 84,
2290+ 0xe016e: 84,
2291+ 0xe016f: 84,
2292+ 0xe0170: 84,
2293+ 0xe0171: 84,
2294+ 0xe0172: 84,
2295+ 0xe0173: 84,
2296+ 0xe0174: 84,
2297+ 0xe0175: 84,
2298+ 0xe0176: 84,
2299+ 0xe0177: 84,
2300+ 0xe0178: 84,
2301+ 0xe0179: 84,
2302+ 0xe017a: 84,
2303+ 0xe017b: 84,
2304+ 0xe017c: 84,
2305+ 0xe017d: 84,
2306+ 0xe017e: 84,
2307+ 0xe017f: 84,
2308+ 0xe0180: 84,
2309+ 0xe0181: 84,
2310+ 0xe0182: 84,
2311+ 0xe0183: 84,
2312+ 0xe0184: 84,
2313+ 0xe0185: 84,
2314+ 0xe0186: 84,
2315+ 0xe0187: 84,
2316+ 0xe0188: 84,
2317+ 0xe0189: 84,
2318+ 0xe018a: 84,
2319+ 0xe018b: 84,
2320+ 0xe018c: 84,
2321+ 0xe018d: 84,
2322+ 0xe018e: 84,
2323+ 0xe018f: 84,
2324+ 0xe0190: 84,
2325+ 0xe0191: 84,
2326+ 0xe0192: 84,
2327+ 0xe0193: 84,
2328+ 0xe0194: 84,
2329+ 0xe0195: 84,
2330+ 0xe0196: 84,
2331+ 0xe0197: 84,
2332+ 0xe0198: 84,
2333+ 0xe0199: 84,
2334+ 0xe019a: 84,
2335+ 0xe019b: 84,
2336+ 0xe019c: 84,
2337+ 0xe019d: 84,
2338+ 0xe019e: 84,
2339+ 0xe019f: 84,
2340+ 0xe01a0: 84,
2341+ 0xe01a1: 84,
2342+ 0xe01a2: 84,
2343+ 0xe01a3: 84,
2344+ 0xe01a4: 84,
2345+ 0xe01a5: 84,
2346+ 0xe01a6: 84,
2347+ 0xe01a7: 84,
2348+ 0xe01a8: 84,
2349+ 0xe01a9: 84,
2350+ 0xe01aa: 84,
2351+ 0xe01ab: 84,
2352+ 0xe01ac: 84,
2353+ 0xe01ad: 84,
2354+ 0xe01ae: 84,
2355+ 0xe01af: 84,
2356+ 0xe01b0: 84,
2357+ 0xe01b1: 84,
2358+ 0xe01b2: 84,
2359+ 0xe01b3: 84,
2360+ 0xe01b4: 84,
2361+ 0xe01b5: 84,
2362+ 0xe01b6: 84,
2363+ 0xe01b7: 84,
2364+ 0xe01b8: 84,
2365+ 0xe01b9: 84,
2366+ 0xe01ba: 84,
2367+ 0xe01bb: 84,
2368+ 0xe01bc: 84,
2369+ 0xe01bd: 84,
2370+ 0xe01be: 84,
2371+ 0xe01bf: 84,
2372+ 0xe01c0: 84,
2373+ 0xe01c1: 84,
2374+ 0xe01c2: 84,
2375+ 0xe01c3: 84,
2376+ 0xe01c4: 84,
2377+ 0xe01c5: 84,
2378+ 0xe01c6: 84,
2379+ 0xe01c7: 84,
2380+ 0xe01c8: 84,
2381+ 0xe01c9: 84,
2382+ 0xe01ca: 84,
2383+ 0xe01cb: 84,
2384+ 0xe01cc: 84,
2385+ 0xe01cd: 84,
2386+ 0xe01ce: 84,
2387+ 0xe01cf: 84,
2388+ 0xe01d0: 84,
2389+ 0xe01d1: 84,
2390+ 0xe01d2: 84,
2391+ 0xe01d3: 84,
2392+ 0xe01d4: 84,
2393+ 0xe01d5: 84,
2394+ 0xe01d6: 84,
2395+ 0xe01d7: 84,
2396+ 0xe01d8: 84,
2397+ 0xe01d9: 84,
2398+ 0xe01da: 84,
2399+ 0xe01db: 84,
2400+ 0xe01dc: 84,
2401+ 0xe01dd: 84,
2402+ 0xe01de: 84,
2403+ 0xe01df: 84,
2404+ 0xe01e0: 84,
2405+ 0xe01e1: 84,
2406+ 0xe01e2: 84,
2407+ 0xe01e3: 84,
2408+ 0xe01e4: 84,
2409+ 0xe01e5: 84,
2410+ 0xe01e6: 84,
2411+ 0xe01e7: 84,
2412+ 0xe01e8: 84,
2413+ 0xe01e9: 84,
2414+ 0xe01ea: 84,
2415+ 0xe01eb: 84,
2416+ 0xe01ec: 84,
2417+ 0xe01ed: 84,
2418+ 0xe01ee: 84,
2419+ 0xe01ef: 84,
2420 }
2421 codepoint_classes = {
2422 'PVALID': (
2423@@ -1831,7 +3885,6 @@ codepoint_classes = {
2424 0xa7d50000a7d6,
2425 0xa7d70000a7d8,
2426 0xa7d90000a7da,
2427- 0xa7f20000a7f5,
2428 0xa7f60000a7f8,
2429 0xa7fa0000a828,
2430 0xa82c0000a82d,
2431@@ -1859,7 +3912,7 @@ codepoint_classes = {
2432 0xab200000ab27,
2433 0xab280000ab2f,
2434 0xab300000ab5b,
2435- 0xab600000ab6a,
2436+ 0xab600000ab69,
2437 0xabc00000abeb,
2438 0xabec0000abee,
2439 0xabf00000abfa,
2440@@ -1904,9 +3957,7 @@ codepoint_classes = {
2441 0x1060000010737,
2442 0x1074000010756,
2443 0x1076000010768,
2444- 0x1078000010786,
2445- 0x10787000107b1,
2446- 0x107b2000107bb,
2447+ 0x1078000010781,
2448 0x1080000010806,
2449 0x1080800010809,
2450 0x1080a00010836,
2451@@ -2115,7 +4166,6 @@ codepoint_classes = {
2452 0x1e8d00001e8d7,
2453 0x1e9220001e94c,
2454 0x1e9500001e95a,
2455- 0x1fbf00001fbfa,
2456 0x200000002a6e0,
2457 0x2a7000002b739,
2458 0x2b7400002b81e,
2459diff --git a/tools/idna-data b/tools/idna-data
2460index f5572a8..9fe004a 100755
2461--- a/tools/idna-data
2462+++ b/tools/idna-data
2463@@ -238,11 +238,18 @@ class UnicodeData(object):
2464 def _load_arabicshaping(self):
2465
2466 self.ucd_as = {}
2467- f_as = self._ucdfile('ArabicShaping.txt')
2468+ f_as = self._ucdfile('extracted/DerivedJoiningType.txt')
2469 for line in f_as.splitlines():
2470- result = re.match(r'^(?P<cp>[0-9A-F]{4,6})\s*;\s*.*?\s*;\s*(?P<jt>\S+)\s*;', line)
2471+ result = re.match(
2472+ r'^(?P<start>[0-9A-F]{4,6})(|\.\.(?P<end>[0-9A-F]{4,6}))\s*;\s*(?P<jt>\S+)\s*(|\#.*)$',
2473+ line)
2474 if result:
2475- self.ucd_as[int(result.group('cp'), 16)] = result.group('jt')
2476+ if result.group('end'):
2477+ for i in hexrange(result.group('start'), result.group('end')):
2478+ self.ucd_as[i] = result.group('jt')
2479+ else:
2480+ i = hexvalue(result.group('start'))
2481+ self.ucd_as[i] = result.group('jt')
2482
2483 def _load_scripts(self):
2484
diff --git a/meta/recipes-devtools/python/python3-idna_3.3.bb b/meta/recipes-devtools/python/python3-idna_3.3.bb
index ee92f44fd5..c5d88259bf 100644
--- a/meta/recipes-devtools/python/python3-idna_3.3.bb
+++ b/meta/recipes-devtools/python/python3-idna_3.3.bb
@@ -5,6 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1"
5 5
6SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" 6SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
7 7
8SRC_URI += " file://CVE-2024-3651.patch"
9
8inherit pypi setuptools3 10inherit pypi setuptools3
9 11
10# Remove bundled egg-info 12# Remove bundled egg-info