summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbehdad <behdad>2002-04-07 09:36:09 +0000
committerbehdad <behdad>2002-04-07 09:36:09 +0000
commitce0a326ef93aa7ac6953dbad27bed57ba657d200 (patch)
treeb6cea3fae76ba60f22c654bbc3ca0a216db95f54
parent8059d3854e2f0544d345fd6fc838fdcdecf36d94 (diff)
Updated to Unicode 3.2
-rw-r--r--.indent.pro1
-rw-r--r--ChangeLog8
-rw-r--r--NEWS4
-rw-r--r--configure.in10
-rw-r--r--fribidi.c130
-rw-r--r--fribidi.h98
-rw-r--r--fribidi_char_sets_cap_rtl.c4
-rw-r--r--fribidi_char_type.c10
-rw-r--r--fribidi_create_mirroring.c11
-rw-r--r--fribidi_env.c172
-rw-r--r--fribidi_env.h114
-rw-r--r--fribidi_main.c21
-rw-r--r--fribidi_mem.c19
-rw-r--r--fribidi_mem.h12
-rw-r--r--fribidi_mirroring.c10
-rw-r--r--fribidi_tab_char_type_2.i186
-rw-r--r--fribidi_tab_char_type_9.i862
-rw-r--r--fribidi_tab_mirroring.i182
-rw-r--r--fribidi_unicode.h2
-rw-r--r--fribidi_utils.c52
-rw-r--r--fribidi_wcwidth.c101
-rw-r--r--packtab.c12
-rw-r--r--unidata/BidiMirroring.txt315
-rw-r--r--unidata/UnicodeData.txt1082
24 files changed, 2551 insertions, 867 deletions
diff --git a/.indent.pro b/.indent.pro
index c94e224..12533a7 100644
--- a/.indent.pro
+++ b/.indent.pro
@@ -11,6 +11,7 @@
-T FriBidiRunType
-T FriBidiList
-T FriBidiMemChunk
+-T FriBidiEnv
-T int8
-T uint8
-T int16
diff --git a/ChangeLog b/ChangeLog
index db5c051..51cb88d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-04-07 Behdad Esfahbod <behdad@bamdad.org>
+ * unidata/*, fribidi_unicode.h, fribidi_wcwidth.c: Update to
+ Unicode 3.2.
+ * configure.in: Version information updated.
+ * fribidi.c: Version information changed to contain Unicode version too.
+ * 0.10.3 released.
+ * .indent.pro: FriBidiEnv added as a type.
+
2002-03-25 Behdad Esfahbod <behdad@bamdad.org>
* fribidi.c: Fixed a bug introduced in adding L3 rule.
diff --git a/NEWS b/NEWS
index 03a53c3..e63de71 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,10 @@ New in CVS:
changed. So please do not use the new api in any public code, before the
next version is released (the api is heavily subject to changes).
+New in 0.10.3:
+
+* Unicode 3.2 data files used.
+
New in 0.10.2:
* Rule L3 of UAX#9 implemented. Now fribidi implements the whole Unicode
diff --git a/configure.in b/configure.in
index 031e83d..a20499f 100644
--- a/configure.in
+++ b/configure.in
@@ -20,11 +20,11 @@ AC_INIT(fribidi.c)
# FRIBIDI_RPM_RELEASE++;
#
FRIBIDI_MAJOR_VERSION=0
-FRIBIDI_MINOR_VERSION=10
-FRIBIDI_MICRO_VERSION=2post
-FRIBIDI_INTERFACE_VERSION=2
-FRIBIDI_INTERFACE_AGE=2
-FRIBIDI_BINARY_AGE=2
+FRIBIDI_MINOR_VERSION=11
+FRIBIDI_MICRO_VERSION=0pre
+FRIBIDI_INTERFACE_VERSION=3
+FRIBIDI_INTERFACE_AGE=0
+FRIBIDI_BINARY_AGE=0
FRIBIDI_RPM_RELEASE=0
FRIBIDI_VERSION=$FRIBIDI_MAJOR_VERSION.$FRIBIDI_MINOR_VERSION.$FRIBIDI_MICRO_VERSION
diff --git a/fribidi.c b/fribidi.c
index 8d3763b..5566a98 100644
--- a/fribidi.c
+++ b/fribidi.c
@@ -110,12 +110,12 @@ static TypeLink *free_type_links = NULL;
#endif
static TypeLink *
-new_type_link (FriBidiEnv* fribidienv)
+new_type_link (FriBidiEnv *fribidienv)
{
TypeLink *link;
#ifdef USE_SIMPLE_MALLOC
- link = (TypeLink*) fribidi_malloc (fribidienv, sizeof (TypeLink));
+ link = (TypeLink *) fribidi_malloc (fribidienv, sizeof (TypeLink));
#else /* !USE_SIMPLE_MALLOC */
if (free_type_links)
{
@@ -145,10 +145,10 @@ new_type_link (FriBidiEnv* fribidienv)
}
static void
-free_type_link (FriBidiEnv* fribidienv, TypeLink *link)
+free_type_link (FriBidiEnv *fribidienv, TypeLink *link)
{
#ifdef USE_SIMPLE_MALLOC
- fribidi_free (fribidienv,link);
+ fribidi_free (fribidienv, link);
#else
link->next = free_type_links;
free_type_links = link;
@@ -164,7 +164,7 @@ free_type_link (FriBidiEnv* fribidienv, TypeLink *link)
} while (0)
static TypeLink *
-run_length_encode_types (FriBidiEnv* fribidienv,
+run_length_encode_types (FriBidiEnv *fribidienv,
FriBidiCharType *char_type, FriBidiStrIndex type_len)
{
TypeLink *list, *last, *link;
@@ -202,8 +202,7 @@ run_length_encode_types (FriBidiEnv* fribidienv,
the override_list.
*/
static void
-init_list (FriBidiEnv* fribidienv,
- TypeLink **start, TypeLink **end)
+init_list (FriBidiEnv *fribidienv, TypeLink **start, TypeLink **end)
{
TypeLink *list;
TypeLink *link;
@@ -262,7 +261,7 @@ move_element_before (TypeLink *p, TypeLink *list)
TBD: use some explanatory names instead of p, q, ...
*/
static void
-override_list (FriBidiEnv* fribidienv, TypeLink *base, TypeLink *over)
+override_list (FriBidiEnv *fribidienv, TypeLink *base, TypeLink *over)
{
TypeLink *p = base, *q, *r, *s, *t;
FriBidiStrIndex pos = 0, pos2;
@@ -361,7 +360,7 @@ override_list (FriBidiEnv* fribidienv, TypeLink *base, TypeLink *over)
#define RL_LEVEL(list) ((list)->level)
static TypeLink *
-merge_with_prev (FriBidiEnv* fribidienv, TypeLink *second)
+merge_with_prev (FriBidiEnv *fribidienv, TypeLink *second)
{
TypeLink *first = second->prev;
first->next = second->next;
@@ -372,7 +371,7 @@ merge_with_prev (FriBidiEnv* fribidienv, TypeLink *second)
}
static void
-compact_list (FriBidiEnv* fribidienv, TypeLink *list)
+compact_list (FriBidiEnv *fribidienv, TypeLink *list)
{
if (list->next)
for (list = list->next; list; list = list->next)
@@ -382,7 +381,7 @@ compact_list (FriBidiEnv* fribidienv, TypeLink *list)
}
static void
-compact_neutrals (FriBidiEnv* fribidienv, TypeLink *list)
+compact_neutrals (FriBidiEnv *fribidienv, TypeLink *list)
{
if (list->next)
{
@@ -562,7 +561,7 @@ print_bidi_string (FriBidiChar *str)
fprintf (stderr, " Org. types : ");
for (i = 0; str[i]; i++)
fprintf (stderr, "%c",
- fribidi_char_from_type (fribidi_get_type (fribidienv,str[i])));
+ fribidi_char_from_type (fribidi_get_type (fribidienv, str[i])));
fprintf (stderr, "\n");
}
#endif
@@ -571,12 +570,12 @@ print_bidi_string (FriBidiChar *str)
* This function should follow the Unicode specification closely!
*----------------------------------------------------------------------*/
static void
-fribidi_analyse_string ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str, FriBidiStrIndex len,
- FriBidiCharType *pbase_dir,
- /* output */
- TypeLink **ptype_rl_list, FriBidiLevel *pmax_level)
+fribidi_analyse_string (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str, FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ TypeLink **ptype_rl_list, FriBidiLevel *pmax_level)
{
FriBidiLevel base_level, max_level;
FriBidiCharType base_dir;
@@ -589,13 +588,14 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
DBG (" Determine character types\n");
{
FriBidiCharType *char_type =
- (FriBidiCharType *) fribidi_malloc (fribidienv, len * sizeof (FriBidiCharType));
+ (FriBidiCharType *) fribidi_malloc (fribidienv,
+ len * sizeof (FriBidiCharType));
for (i = 0; i < len; i++)
- char_type[i] = fribidi_get_type (fribidienv,str[i]);
+ char_type[i] = fribidi_get_type (fribidienv, str[i]);
/* Run length encode the character types */
type_rl_list = run_length_encode_types (fribidienv, char_type, len);
- fribidi_free (fribidienv,char_type);
+ fribidi_free (fribidienv, char_type);
}
DBG (" Determine character types, Done\n");
@@ -627,7 +627,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
DBG (" Finding the base level, Done\n");
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_types_re (type_rl_list);
}
@@ -654,7 +654,9 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
over_pushed = 0;
first_interval = 0;
status_stack =
- (LevelInfo *) fribidi_malloc (fribidienv, sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL + 2));
+ (LevelInfo *) fribidi_malloc (fribidienv,
+ sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL +
+ 2));
for (pp = type_rl_list->next; pp->next; pp = pp->next)
{
@@ -718,7 +720,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
stack_size = 0;
over_pushed = 0;
- fribidi_free (fribidienv,status_stack);
+ fribidi_free (fribidienv, status_stack);
}
/* X10. The remaining rules are applied to each run of characters at the
same level. For each run, determine the start-of-level-run (sor) and
@@ -733,7 +735,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
compact_list (fribidienv, type_rl_list);
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_types_re (type_rl_list);
print_bidi_string (str);
@@ -865,7 +867,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
compact_neutrals (fribidienv, type_rl_list);
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_resolved_levels (type_rl_list);
print_resolved_types (type_rl_list);
@@ -897,7 +899,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
compact_list (fribidienv, type_rl_list);
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_resolved_levels (type_rl_list);
print_resolved_types (type_rl_list);
@@ -933,7 +935,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
compact_list (fribidienv, type_rl_list);
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_bidi_string (str);
print_resolved_levels (type_rl_list);
@@ -957,7 +959,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
}
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_types_re (type_rl_list);
print_resolved_levels (type_rl_list);
@@ -979,7 +981,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
{
/* if state is on at the very first of string, do this too. */
if (j >= 0)
- k = fribidi_get_type (fribidienv,str[j]);
+ k = fribidi_get_type (fribidienv, str[j]);
else
k = FRIBIDI_TYPE_ON;
if (!state && FRIBIDI_IS_SEPARATOR (k))
@@ -991,7 +993,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
{
state = 0;
p = new_type_link (fribidienv);
- p->prev = p->next = (TypeLink*) NULL;
+ p->prev = p->next = (TypeLink *) NULL;
p->pos = j + 1;
p->len = pos - j;
p->type = base_dir;
@@ -1004,7 +1006,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
}
#ifdef DEBUG
- if (fribidi_debug_status(fribidienv))
+ if (fribidi_debug_status (fribidienv))
{
print_types_re (type_rl_list);
print_resolved_levels (type_rl_list);
@@ -1025,7 +1027,7 @@ fribidi_analyse_string ( FriBidiEnv* fribidienv,
* fribidi_analyse_string(), after the list is not needed anymore.
*----------------------------------------------------------------------*/
static void
-free_rl_list (FriBidiEnv* fribidienv, TypeLink *type_rl_list)
+free_rl_list (FriBidiEnv *fribidienv, TypeLink *type_rl_list)
{
TypeLink *pp;
@@ -1070,7 +1072,7 @@ free_rl_list (FriBidiEnv* fribidienv, TypeLink *type_rl_list)
* the new length, updates each of other inputs if not NULL.
*----------------------------------------------------------------------*/
FriBidiStrIndex
-fribidi_remove_bidi_marks (FriBidiEnv* fribidienv,
+fribidi_remove_bidi_marks (FriBidiEnv *fribidienv,
FriBidiChar *str, FriBidiStrIndex length,
FriBidiStrIndex *position_to_this_list,
FriBidiStrIndex *position_from_this_list,
@@ -1087,12 +1089,14 @@ fribidi_remove_bidi_marks (FriBidiEnv* fribidienv,
{
private_from_this = TRUE;
position_from_this_list =
- (FriBidiStrIndex *) fribidi_malloc (fribidienv, sizeof (FriBidiStrIndex) * length);
+ (FriBidiStrIndex *) fribidi_malloc (fribidienv,
+ sizeof (FriBidiStrIndex) *
+ length);
}
j = 0;
for (i = 0; i < length; i++)
- if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (fribidienv,str[i]))
+ if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (fribidienv, str[i]))
&& str[i] != UNI_LRM && str[i] != UNI_RLM)
{
str[j] = str[i];
@@ -1127,17 +1131,17 @@ fribidi_remove_bidi_marks (FriBidiEnv* fribidienv,
* does reordering and fills in the output strings.
*----------------------------------------------------------------------*/
boolean
-fribidi_log2vis ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str, FriBidiStrIndex len,
- FriBidiCharType *pbase_dir,
- /* output */
- FriBidiChar *visual_str,
- FriBidiStrIndex *position_L_to_V_list,
- FriBidiStrIndex *position_V_to_L_list,
- FriBidiLevel *embedding_level_list)
+fribidi_log2vis (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str, FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ FriBidiChar *visual_str,
+ FriBidiStrIndex *position_L_to_V_list,
+ FriBidiStrIndex *position_V_to_L_list,
+ FriBidiLevel *embedding_level_list)
{
- TypeLink *type_rl_list, *pp = (TypeLink*) NULL;
+ TypeLink *type_rl_list, *pp = (TypeLink *) NULL;
FriBidiLevel max_level;
boolean private_V_to_L = FALSE;
@@ -1155,7 +1159,8 @@ fribidi_log2vis ( FriBidiEnv* fribidienv,
{
private_V_to_L = TRUE;
position_V_to_L_list =
- (FriBidiStrIndex *) fribidi_malloc (fribidienv, sizeof (FriBidiStrIndex) * len);
+ (FriBidiStrIndex *) fribidi_malloc (fribidienv,
+ sizeof (FriBidiStrIndex) * len);
}
if (len > FRIBIDI_MAX_STRING_LENGTH && position_V_to_L_list)
@@ -1215,7 +1220,7 @@ fribidi_log2vis ( FriBidiEnv* fribidienv,
/* Reorder both the outstring and the order array */
if (visual_str || position_V_to_L_list)
{
- if (fribidi_mirroring_status(fribidienv) && visual_str)
+ if (fribidi_mirroring_status (fribidienv) && visual_str)
{
/* L4. Mirror all characters that are in odd levels and have mirrors. */
DBG (" Mirroring\n");
@@ -1236,7 +1241,7 @@ fribidi_log2vis ( FriBidiEnv* fribidienv,
DBG (" Mirroring, Done\n");
}
- if (fribidi_reorder_nsm_status(fribidienv))
+ if (fribidi_reorder_nsm_status (fribidienv))
{
/* L3. Reorder NSMs. */
DBG (" Reordering NSM sequences\n");
@@ -1249,7 +1254,8 @@ fribidi_log2vis ( FriBidiEnv* fribidienv,
boolean is_nsm_seq, seq_end;
is_nsm_seq = 0;
- for (i = RL_POS (pp) + RL_LEN (pp) - 1; i >= RL_POS (pp); i--)
+ for (i = RL_POS (pp) + RL_LEN (pp) - 1; i >= RL_POS (pp);
+ i--)
{
FriBidiCharType this_type;
@@ -1337,13 +1343,13 @@ fribidi_log2vis ( FriBidiEnv* fribidienv,
* the embedding levels.
*----------------------------------------------------------------------*/
boolean
-fribidi_log2vis_get_embedding_levels ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str,
- FriBidiStrIndex len,
- FriBidiCharType *pbase_dir,
- /* output */
- FriBidiLevel *embedding_level_list)
+fribidi_log2vis_get_embedding_levels (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str,
+ FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ FriBidiLevel *embedding_level_list)
{
TypeLink *type_rl_list, *pp;
FriBidiLevel max_level;
@@ -1376,10 +1382,12 @@ fribidi_log2vis_get_embedding_levels ( FriBidiEnv* fribidienv,
-const char fribidi_version_info[] =
- FRIBIDI_PACKAGE " " FRIBIDI_VERSION " (interface version "
- FRIBIDI_INTERFACE_VERSION_STR ")\n"
- "Copyright (C) 2001 FriBidi Project (http://fribidi.sf.net/).\n" "\n"
+const char *fribidi_version_info =
+ FRIBIDI_PACKAGE " " FRIBIDI_VERSION "\n"
+ "interface version " FRIBIDI_INTERFACE_VERSION_STR "\n"
+ "Unicode version " FRIBIDI_UNICODE_VERSION "\n"
+ "\n"
+ "Copyright (C) 2002 FriBidi Project (http://fribidi.sf.net/).\n"
FRIBIDI_PACKAGE " comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute copies of " FRIBIDI_PACKAGE " under the terms of\n"
"the GNU Lesser General Public License.\n"
diff --git a/fribidi.h b/fribidi.h
index a616654..101ba30 100644
--- a/fribidi.h
+++ b/fribidi.h
@@ -39,31 +39,30 @@ extern "C"
{
#endif
- boolean fribidi_log2vis ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str,
- FriBidiStrIndex len,
- FriBidiCharType *pbase_dirs,
- /* output */
- FriBidiChar *visual_str,
- FriBidiStrIndex *position_L_to_V_list,
- FriBidiStrIndex *position_V_to_L_list,
- FriBidiLevel *embedding_level_list);
+ boolean fribidi_log2vis (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str,
+ FriBidiStrIndex len, FriBidiCharType *pbase_dirs,
+ /* output */
+ FriBidiChar *visual_str,
+ FriBidiStrIndex *position_L_to_V_list,
+ FriBidiStrIndex *position_V_to_L_list,
+ FriBidiLevel *embedding_level_list);
- boolean fribidi_log2vis_get_embedding_levels ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str,
- FriBidiStrIndex len,
- FriBidiCharType *pbase_dir,
- /* output */
- FriBidiLevel
- *embedding_level_list);
+ boolean fribidi_log2vis_get_embedding_levels (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str,
+ FriBidiStrIndex len,
+ FriBidiCharType *pbase_dir,
+ /* output */
+ FriBidiLevel
+ *embedding_level_list);
/*======================================================================
* fribidi_remove_bidi_marks() removes bidirectional marks, and returns
* the new length, also updates each of other inputs if not NULL.
*----------------------------------------------------------------------*/
- FriBidiStrIndex fribidi_remove_bidi_marks (FriBidiEnv* fribidienv,
+ FriBidiStrIndex fribidi_remove_bidi_marks (FriBidiEnv *fribidienv,
FriBidiChar *str,
FriBidiStrIndex length,
FriBidiStrIndex
@@ -86,23 +85,22 @@ extern "C"
/*======================================================================
* fribidi_get_types() returns bidi type of a string.
*----------------------------------------------------------------------*/
- void fribidi_get_types ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str,
- FriBidiStrIndex len,
- /* output */
- FriBidiCharType *type);
+ void fribidi_get_types (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str, FriBidiStrIndex len,
+ /* output */
+ FriBidiCharType *type);
/*======================================================================
* fribidi_get_mirror_char() returns the mirrored character, if input
* character has a mirror, or the input itself.
* if mirrored_ch is NULL, just returns if character has a mirror or not.
*----------------------------------------------------------------------*/
- boolean fribidi_get_mirror_char ( FriBidiEnv* fribidienv,
- /* Input */
- FriBidiChar ch,
- /* Output */
- FriBidiChar *mirrored_ch);
+ boolean fribidi_get_mirror_char (FriBidiEnv *fribidienv,
+ /* Input */
+ FriBidiChar ch,
+ /* Output */
+ FriBidiChar *mirrored_ch);
/*======================================================================
* The following functions were moved to fribidi_env:
* - fribidi_mirroring_status()
@@ -119,15 +117,15 @@ extern "C"
* of characters that need redrawing. It returns the start and the
* length of the section in the new string that needs redrawing.
*----------------------------------------------------------------------*/
- void fribidi_find_string_changes ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *old_str,
- FriBidiStrIndex old_len,
- const FriBidiChar *new_str,
- FriBidiStrIndex new_len,
- /* output */
- FriBidiStrIndex *change_start,
- FriBidiStrIndex *change_len);
+ void fribidi_find_string_changes (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *old_str,
+ FriBidiStrIndex old_len,
+ const FriBidiChar *new_str,
+ FriBidiStrIndex new_len,
+ /* output */
+ FriBidiStrIndex *change_start,
+ FriBidiStrIndex *change_len);
/*======================================================================
@@ -159,7 +157,7 @@ extern "C"
* // output
* &num_vis_ranges, *vis_ranges);
**----------------------------------------------------------------------*/
- void fribidi_map_range (FriBidiEnv* fribidienv,
+ void fribidi_map_range (FriBidiEnv *fribidienv,
/* input */
FriBidiStrIndex span[2],
FriBidiStrIndex len,
@@ -174,7 +172,7 @@ extern "C"
* was resolved in the rtl direction. This simply involves asking
* if the embedding level for the character is odd.
*----------------------------------------------------------------------*/
- boolean fribidi_is_char_rtl (FriBidiEnv* fribidienv,
+ boolean fribidi_is_char_rtl (FriBidiEnv *fribidienv,
const FriBidiLevel *embedding_level_list,
FriBidiCharType base_dir, FriBidiStrIndex idx);
@@ -226,7 +224,7 @@ extern "C"
* beyond the end of the line, res_attach_before is true.
*
*----------------------------------------------------------------------*/
- void fribidi_xpos_resolve (FriBidiEnv* fribidienv,
+ void fribidi_xpos_resolve (FriBidiEnv *fribidienv,
/* input */
int x_pos, int x_offset,
FriBidiStrIndex len,
@@ -246,14 +244,14 @@ extern "C"
* a list of visual runs. A run is defined as a sequence that has
* the same attributes.
*----------------------------------------------------------------------*/
- void fribidi_runs_log2vis ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiList *logical_runs, /* List of FriBidiRunType */
- FriBidiStrIndex len,
- const FriBidiStrIndex *log2vis,
- FriBidiCharType base_dir,
- /* output */
- FriBidiList **visual_runs);
+ void fribidi_runs_log2vis (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiList *logical_runs, /* List of FriBidiRunType */
+ FriBidiStrIndex len,
+ const FriBidiStrIndex *log2vis,
+ FriBidiCharType base_dir,
+ /* output */
+ FriBidiList **visual_runs);
#ifdef __cplusplus
diff --git a/fribidi_char_sets_cap_rtl.c b/fribidi_char_sets_cap_rtl.c
index a0cee9b..070284f 100644
--- a/fribidi_char_sets_cap_rtl.c
+++ b/fribidi_char_sets_cap_rtl.c
@@ -262,7 +262,9 @@ fribidi_char_set_enter_cap_rtl (void)
int i, count;
caprtl_to_unicode =
- (FriBidiChar *) fribidi_malloc (NULL, CAPRTL_CHARS * sizeof caprtl_to_unicode[0]);
+ (FriBidiChar *) fribidi_malloc (NULL,
+ CAPRTL_CHARS *
+ sizeof caprtl_to_unicode[0]);
for (i = 0; i < FRIBIDI_TYPES_COUNT; i++)
request[i] = 0;
for (i = 0; i < CAPRTL_CHARS; i++)
diff --git a/fribidi_char_type.c b/fribidi_char_type.c
index a16f904..9ce4df6 100644
--- a/fribidi_char_type.c
+++ b/fribidi_char_type.c
@@ -30,11 +30,11 @@
FriBidiCharType fribidi_get_type_internal (FriBidiChar uch);
void
-fribidi_get_types ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *str, FriBidiStrIndex len,
- /* output */
- FriBidiCharType *type)
+fribidi_get_types (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *str, FriBidiStrIndex len,
+ /* output */
+ FriBidiCharType *type)
{
FriBidiStrIndex i;
diff --git a/fribidi_create_mirroring.c b/fribidi_create_mirroring.c
index 0b3fc0d..398802d 100644
--- a/fribidi_create_mirroring.c
+++ b/fribidi_create_mirroring.c
@@ -22,6 +22,10 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "fribidi_unicode.h"
static void
err2 (char *fmt, char *p)
@@ -33,7 +37,6 @@ err2 (char *fmt, char *p)
}
static int table[0x110000];
-static char *bidi_mirroring_version;
static char *bidi_mirroring_file;
static int mirroring_count;
@@ -51,8 +54,8 @@ read_bidi_mirroring ()
printf ("Reading `BidiMirroring.txt'\n");
if (!(f = fopen (bidi_mirroring_file, "rt")))
err2 ("cannot open `%s' for reading", bidi_mirroring_file);
- fgets (s, sizeof s, f);
- sscanf (s, "# BidiMirroring-%[^.]", bidi_mirroring_version = malloc (20));
+/* fgets (s, sizeof s, f);
+ sscanf (s, "# BidiMirroring-%s.txt", bidi_mirroring_version = malloc (20));*/
while (fgets (s, sizeof s, f))
{
if (s[0] == '#' || s[0] == '\0' || s[0] == '\n')
@@ -93,7 +96,7 @@ write_mirror (char *file)
err2 ("cannot open `%s' for writing", file);
fprintf (f, "/*\n"
" This file was automatically created from BidiMirroring.txt, version %s\n"
- " by fribidi_create_mirroring\n*/\n\n", bidi_mirroring_version);
+ " by fribidi_create_mirroring\n*/\n\n", FRIBIDI_UNICODE_VERSION);
fprintf (f, "#ifndef %s\n#define %s\n\n#include \"fribidi.h\"\n\n",
FILENAME, FILENAME);
fprintf (f, "/*\n"
diff --git a/fribidi_env.c b/fribidi_env.c
index 19c8b38..507bc2e 100644
--- a/fribidi_env.c
+++ b/fribidi_env.c
@@ -57,9 +57,10 @@
* It initializes the doubly-linked list of memory chunks and the flags.
*----------------------------------------------------------------------*/
-void init_fribidienv(FriBidiEnv* fribidienv, FriBidiFlags aFlags)
+void
+init_fribidienv (FriBidiEnv *fribidienv, FriBidiFlags aFlags)
{
- VALIDATE_FRIBIDIENV(fribidienv);
+ VALIDATE_FRIBIDIENV (fribidienv);
fribidienv->iAllocatedMemoryChunks = NULL;
fribidienv->iFlags = aFlags;
/* fribidienv->iReserved3 = NULL; */
@@ -71,19 +72,21 @@ void init_fribidienv(FriBidiEnv* fribidienv, FriBidiFlags aFlags)
* so there is no need for a separate init_fribidienv() call (but it
* does not harm).
*----------------------------------------------------------------------*/
-void destroy_fribidienv(FriBidiEnv* fribidienv)
+void
+destroy_fribidienv (FriBidiEnv *fribidienv)
{
- FriBidiMemChunkPrefix* lChunkPtr;
- FriBidiMemChunkPrefix* lChunkNext;
+ FriBidiMemChunkPrefix *lChunkPtr;
+ FriBidiMemChunkPrefix *lChunkNext;
- VALIDATE_FRIBIDIENV(fribidienv);
+ VALIDATE_FRIBIDIENV (fribidienv);
lChunkPtr = fribidienv->iAllocatedMemoryChunks;
- while (NULL != lChunkPtr) {
- lChunkNext = (FriBidiMemChunkPrefix*) (lChunkPtr->iNext);
- free(lChunkPtr);
- lChunkPtr = lChunkNext;
- }
+ while (NULL != lChunkPtr)
+ {
+ lChunkNext = (FriBidiMemChunkPrefix *) (lChunkPtr->iNext);
+ free (lChunkPtr);
+ lChunkPtr = lChunkNext;
+ }
fribidienv->iAllocatedMemoryChunks = NULL;
}
@@ -93,17 +96,20 @@ void destroy_fribidienv(FriBidiEnv* fribidienv)
* This function may throw an Out-Of-Memory exception in
* environments, which support exceptions.
*----------------------------------------------------------------------*/
-void* fribidi_malloc(FriBidiEnv* fribidienv, size_t size)
+void *
+fribidi_malloc (FriBidiEnv *fribidienv, size_t size)
{
- FriBidiMemChunkPrefix* lChunk_ptr;
- FriBidiMemChunkPrefix* lNextChunk_ptr;
+ FriBidiMemChunkPrefix *lChunk_ptr;
+ FriBidiMemChunkPrefix *lNextChunk_ptr;
- VALIDATE_FRIBIDIENV(fribidienv);
+ VALIDATE_FRIBIDIENV (fribidienv);
- lChunk_ptr = (FriBidiMemChunkPrefix*) malloc(sizeof(FriBidiMemChunkPrefix) + size);
- if (NULL == lChunk_ptr) {
- FRIBIDI_OOM_ACTION;
- }
+ lChunk_ptr =
+ (FriBidiMemChunkPrefix *) malloc (sizeof (FriBidiMemChunkPrefix) + size);
+ if (NULL == lChunk_ptr)
+ {
+ FRIBIDI_OOM_ACTION;
+ }
/* Before:
* fribidienv->iAllocatedMemoryChunks points at lNextChunk_ptr.
@@ -122,13 +128,14 @@ void* fribidi_malloc(FriBidiEnv* fribidienv, size_t size)
lNextChunk_ptr = fribidienv->iAllocatedMemoryChunks;
fribidienv->iAllocatedMemoryChunks = lChunk_ptr;
- if (NULL != lNextChunk_ptr) {
- lNextChunk_ptr->iPrev = lChunk_ptr;
- }
+ if (NULL != lNextChunk_ptr)
+ {
+ lNextChunk_ptr->iPrev = lChunk_ptr;
+ }
lChunk_ptr->iNext = lNextChunk_ptr;
- lChunk_ptr->iPrev = (FriBidiMemChunkPrefix*)fribidienv;
+ lChunk_ptr->iPrev = (FriBidiMemChunkPrefix *) fribidienv;
- return((void*) (&lChunk_ptr[1]));
+ return ((void *) (&lChunk_ptr[1]));
}
/*======================================================================
@@ -136,11 +143,12 @@ void* fribidi_malloc(FriBidiEnv* fribidienv, size_t size)
* FriBidiEnv instance and free it.
* If the memory chunk is not properly linked, then panic.
*----------------------------------------------------------------------*/
-void fribidi_free(FriBidiEnv* fribidienv, void* ptr)
+void
+fribidi_free (FriBidiEnv *fribidienv, void *ptr)
{
- FriBidiMemChunkPrefix* lChunk_ptr;
- FriBidiMemChunkPrefix* lNextChunk_ptr;
- FriBidiMemChunkPrefix* lPrevChunk_ptr;
+ FriBidiMemChunkPrefix *lChunk_ptr;
+ FriBidiMemChunkPrefix *lNextChunk_ptr;
+ FriBidiMemChunkPrefix *lPrevChunk_ptr;
/* VALIDATE_FRIBIDIENV(fribidienv); */
/* At normal operation (i.e. not when debugging the memory management
@@ -148,23 +156,25 @@ void fribidi_free(FriBidiEnv* fribidienv, void* ptr)
* fribidi_free().
*/
- if (NULL == ptr) return;
+ if (NULL == ptr)
+ return;
- lChunk_ptr = (FriBidiMemChunkPrefix*)
- (((char *)ptr) - sizeof(FriBidiMemChunkPrefix));
+ lChunk_ptr = (FriBidiMemChunkPrefix *)
+ (((char *) ptr) - sizeof (FriBidiMemChunkPrefix));
- lNextChunk_ptr = (FriBidiMemChunkPrefix*) (lChunk_ptr->iNext);
- lPrevChunk_ptr = (FriBidiMemChunkPrefix*) (lChunk_ptr->iPrev);
+ lNextChunk_ptr = (FriBidiMemChunkPrefix *) (lChunk_ptr->iNext);
+ lPrevChunk_ptr = (FriBidiMemChunkPrefix *) (lChunk_ptr->iPrev);
- assert(NULL != lPrevChunk_ptr);
+ assert (NULL != lPrevChunk_ptr);
/* Remove the current memory chunk from the doubly-linked list. */
lPrevChunk_ptr->iNext = lNextChunk_ptr;
- if (NULL != lNextChunk_ptr) {
- lNextChunk_ptr->iPrev = lPrevChunk_ptr;
- }
+ if (NULL != lNextChunk_ptr)
+ {
+ lNextChunk_ptr->iPrev = lPrevChunk_ptr;
+ }
- free(lChunk_ptr);
+ free (lChunk_ptr);
}
@@ -174,64 +184,73 @@ void fribidi_free(FriBidiEnv* fribidienv, void* ptr)
* fribidi_mirroring_status() returns whether mirroring is on or off,
* default is on.
*----------------------------------------------------------------------*/
-boolean fribidi_mirroring_status (FriBidiEnv* fbenv)
+boolean
+fribidi_mirroring_status (FriBidiEnv *fbenv)
{
- VALIDATE_FRIBIDIENV(fbenv);
+ VALIDATE_FRIBIDIENV (fbenv);
- return(0 != (fbenv->iFlags & FRIBIDIENV_MIRRORING_MODE) ? TRUE : FALSE);
+ return (0 != (fbenv->iFlags & FRIBIDIENV_MIRRORING_MODE) ? TRUE : FALSE);
}
/*======================================================================
* fribidi_set_mirroring() sets mirroring on or off.
*----------------------------------------------------------------------*/
-void fribidi_set_mirroring (FriBidiEnv* fbenv, boolean mirror)
+void
+fribidi_set_mirroring (FriBidiEnv *fbenv, boolean mirror)
{
- VALIDATE_FRIBIDIENV(fbenv);
-
- if (FALSE != mirror) {
- fbenv->iFlags |= FRIBIDIENV_MIRRORING_MODE;
- }
- else {
- fbenv->iFlags &= (~FRIBIDIENV_MIRRORING_MODE);
- }
+ VALIDATE_FRIBIDIENV (fbenv);
+
+ if (FALSE != mirror)
+ {
+ fbenv->iFlags |= FRIBIDIENV_MIRRORING_MODE;
+ }
+ else
+ {
+ fbenv->iFlags &= (~FRIBIDIENV_MIRRORING_MODE);
+ }
}
/*======================================================================
* fribidi_reorder_nsm_status() returns whether reordering of nsm
* sequences is on or off, default is off.
*----------------------------------------------------------------------*/
-boolean fribidi_reorder_nsm_status (FriBidiEnv* fbenv)
+boolean
+fribidi_reorder_nsm_status (FriBidiEnv *fbenv)
{
- VALIDATE_FRIBIDIENV(fbenv);
+ VALIDATE_FRIBIDIENV (fbenv);
- return(0 != (fbenv->iFlags & FRIBIDIENV_REORDER_NSM_MODE) ? TRUE : FALSE);
+ return (0 != (fbenv->iFlags & FRIBIDIENV_REORDER_NSM_MODE) ? TRUE : FALSE);
}
/*======================================================================
* fribidi_set_reorder_nsm() sets reordering of nsm sequences on or off.
*----------------------------------------------------------------------*/
-void fribidi_set_reorder_nsm (FriBidiEnv* fbenv, boolean reorder)
+void
+fribidi_set_reorder_nsm (FriBidiEnv *fbenv, boolean reorder)
{
- VALIDATE_FRIBIDIENV(fbenv);
-
- if (FALSE != reorder) {
- fbenv->iFlags |= FRIBIDIENV_REORDER_NSM_MODE;
- }
- else {
- fbenv->iFlags &= (~FRIBIDIENV_REORDER_NSM_MODE);
- }
+ VALIDATE_FRIBIDIENV (fbenv);
+
+ if (FALSE != reorder)
+ {
+ fbenv->iFlags |= FRIBIDIENV_REORDER_NSM_MODE;
+ }
+ else
+ {
+ fbenv->iFlags &= (~FRIBIDIENV_REORDER_NSM_MODE);
+ }
}
/*======================================================================
* fribidi_debug_status() returns whether debugging is on or off,
* default is off.
*----------------------------------------------------------------------*/
-boolean fribidi_debug_status (FriBidiEnv* fbenv)
+boolean
+fribidi_debug_status (FriBidiEnv *fbenv)
{
#ifdef DEBUG
- VALIDATE_FRIBIDIENV(fbenv);
+ VALIDATE_FRIBIDIENV (fbenv);
- return(0 != (fbenv->iFlags & FRIBIDIENV_DEBUG_MODE) ? TRUE : FALSE);
+ return (0 != (fbenv->iFlags & FRIBIDIENV_DEBUG_MODE) ? TRUE : FALSE);
#else /* DEBUG */
return FALSE;
#endif /* DEBUG */
@@ -242,17 +261,20 @@ boolean fribidi_debug_status (FriBidiEnv* fbenv)
* if the library was compiled without DEBUG option, this function
* returns FALSE.
*----------------------------------------------------------------------*/
-boolean fribidi_set_debug (FriBidiEnv* fbenv, boolean debug)
+boolean
+fribidi_set_debug (FriBidiEnv *fbenv, boolean debug)
{
#ifdef DEBUG
- VALIDATE_FRIBIDIENV(fbenv);
-
- if (FALSE != debug) {
- fbenv->iFlags |= FRIBIDIENV_DEBUG_MODE;
- }
- else {
- fbenv->iFlags &= (~FRIBIDIENV_DEBUG_MODE);
- }
+ VALIDATE_FRIBIDIENV (fbenv);
+
+ if (FALSE != debug)
+ {
+ fbenv->iFlags |= FRIBIDIENV_DEBUG_MODE;
+ }
+ else
+ {
+ fbenv->iFlags &= (~FRIBIDIENV_DEBUG_MODE);
+ }
return debug;
#else /* DEBUG */
return FALSE;
@@ -264,7 +286,7 @@ boolean fribidi_set_debug (FriBidiEnv* fbenv, boolean debug)
* For environments with global FriBidiEnv instance.
*----------------------------------------------------------------------*/
#ifdef GLOBAL_FRIBIDIENV
-FriBidiEnv fribidi_global_env = {NULL, FRIBIDIENV_DEFAULT_SETTINGS};
+FriBidiEnv fribidi_global_env = { NULL, FRIBIDIENV_DEFAULT_SETTINGS };
/* fribidi_global_env needs no explicit initialization. */
#endif /* GLOBAL_FRIBIDIENV */
diff --git a/fribidi_env.h b/fribidi_env.h
index 9815afb..d146f81 100644
--- a/fribidi_env.h
+++ b/fribidi_env.h
@@ -82,19 +82,20 @@ extern "C"
* between it and a memory chunk in middle of the doubly-linked list.
**********************************************************************/
-typedef struct _FriBidiMemChunkPrefix FriBidiMemChunkPrefix;
-
-struct _FriBidiMemChunkPrefix {
- FriBidiMemChunkPrefix* iNext;
- /* must be first item in the chunk prefix, so that the
- * fribidi_free() can handle the list head without checking
- * for special cases.
- */
- FriBidiMemChunkPrefix* iPrev;
- /* Points at either FriBidiMemChunkPrefix or at
- * FriBidiEnv.
- */
-};
+ typedef struct _FriBidiMemChunkPrefix FriBidiMemChunkPrefix;
+
+ struct _FriBidiMemChunkPrefix
+ {
+ FriBidiMemChunkPrefix *iNext;
+ /* must be first item in the chunk prefix, so that the
+ * fribidi_free() can handle the list head without checking
+ * for special cases.
+ */
+ FriBidiMemChunkPrefix *iPrev;
+ /* Points at either FriBidiMemChunkPrefix or at
+ * FriBidiEnv.
+ */
+ };
/*======================================================================
@@ -105,38 +106,39 @@ struct _FriBidiMemChunkPrefix {
* currently defined.
* But we want to keep all FriBidiEnv fields word-aligned.
*/
-typedef uint32 FriBidiFlags;
+ typedef uint32 FriBidiFlags;
/* The following is defined in fribidi_mem.h, must be defined
* there due to forward references.
*/
/* typedef struct _FriBidiEnv FriBidiEnv; */
-struct _FriBidiEnv {
- FriBidiMemChunkPrefix* iAllocatedMemoryChunks;
- /* Pointer to doubly-linked list of allocated memory chunks.
- * Must be the first item in the structure, so that the
- * fribidi_free() can handle list head without checking for
- * special cases.
- */
- FriBidiFlags iFlags;
- /* The flags will define:
- * - Debug mode
- * - Mirroring
- * - L3 rule on/off
- * - remove BiDi marks on/off
- * - Arabic joining on/off
- * - Ligaturing on/off
- * They will be set and cleared by inlined access procedures.
- */
-
- /* The following are reserved for future expansion without breaking
- * binary compatibility of existing software.
- */
- uint32 iReserved1;
- uint32 iReserved2;
- void* iReserved3; /* If necessary, will point at extension to FriBidiEnv. */
-};
+ struct _FriBidiEnv
+ {
+ FriBidiMemChunkPrefix *iAllocatedMemoryChunks;
+ /* Pointer to doubly-linked list of allocated memory chunks.
+ * Must be the first item in the structure, so that the
+ * fribidi_free() can handle list head without checking for
+ * special cases.
+ */
+ FriBidiFlags iFlags;
+ /* The flags will define:
+ * - Debug mode
+ * - Mirroring
+ * - L3 rule on/off
+ * - remove BiDi marks on/off
+ * - Arabic joining on/off
+ * - Ligaturing on/off
+ * They will be set and cleared by inlined access procedures.
+ */
+
+ /* The following are reserved for future expansion without breaking
+ * binary compatibility of existing software.
+ */
+ uint32 iReserved1;
+ uint32 iReserved2;
+ void *iReserved3; /* If necessary, will point at extension to FriBidiEnv. */
+ };
/*======================================================================
* Initialize a FriBidiEnv structure. Must be called before any
@@ -144,7 +146,7 @@ struct _FriBidiEnv {
*
* It initializes the doubly-linked list of memory chunks and the flags.
*----------------------------------------------------------------------*/
-void init_fribidienv(FriBidiEnv* fribidienv, FriBidiFlags aFlags);
+ void init_fribidienv (FriBidiEnv *fribidienv, FriBidiFlags aFlags);
/*======================================================================
@@ -153,7 +155,7 @@ void init_fribidienv(FriBidiEnv* fribidienv, FriBidiFlags aFlags);
* so there is no need for a separate init_fribidienv() call (but it
* does not harm).
*----------------------------------------------------------------------*/
-void destroy_fribidienv(FriBidiEnv* fribidienv);
+ void destroy_fribidienv (FriBidiEnv *fribidienv);
/*======================================================================
@@ -161,7 +163,7 @@ void destroy_fribidienv(FriBidiEnv* fribidienv);
* This function may throw an Out-Of-Memory exception in
* environments, which support exceptions.
*----------------------------------------------------------------------*/
-void* fribidi_malloc(FriBidiEnv* fribidienv, size_t size);
+ void *fribidi_malloc (FriBidiEnv *fribidienv, size_t size);
/*======================================================================
@@ -169,7 +171,7 @@ void* fribidi_malloc(FriBidiEnv* fribidienv, size_t size);
* FriBidiEnv instance and free it.
* If the memory chunk is not properly linked, then panic.
*----------------------------------------------------------------------*/
-void fribidi_free(FriBidiEnv* fribidienv, void* ptr);
+ void fribidi_free (FriBidiEnv *fribidienv, void *ptr);
/*====================================================================*/
@@ -197,37 +199,37 @@ void fribidi_free(FriBidiEnv* fribidienv, void* ptr);
* fribidi_mirroring_status() returns whether mirroring is on or off,
* default is on.
*----------------------------------------------------------------------*/
-boolean fribidi_mirroring_status (FriBidiEnv* fbenv);
+ boolean fribidi_mirroring_status (FriBidiEnv *fbenv);
/*======================================================================
* fribidi_set_mirroring() sets mirroring on or off.
*----------------------------------------------------------------------*/
-void fribidi_set_mirroring (FriBidiEnv* fbenv, boolean mirror);
+ void fribidi_set_mirroring (FriBidiEnv *fbenv, boolean mirror);
/*======================================================================
* fribidi_reorder_nsm_status() returns whether reordering of nsm
* sequences is on or off, default is off.
*----------------------------------------------------------------------*/
-boolean fribidi_reorder_nsm_status (FriBidiEnv* fbenv);
+ boolean fribidi_reorder_nsm_status (FriBidiEnv *fbenv);
/*======================================================================
* fribidi_set_reorder_nsm() sets reordering of nsm sequences on or off.
*----------------------------------------------------------------------*/
-void fribidi_set_reorder_nsm (FriBidiEnv* fbenv, boolean reorder);
+ void fribidi_set_reorder_nsm (FriBidiEnv *fbenv, boolean reorder);
/*======================================================================
* fribidi_debug_status() returns whether debugging is on or off,
* default is off. Returns false if fribidi is not compiled with debug
* enabled.
*----------------------------------------------------------------------*/
-boolean fribidi_debug_status (FriBidiEnv* fbenv);
+ boolean fribidi_debug_status (FriBidiEnv *fbenv);
/*======================================================================
* fribidi_set_debug() turn on or off debugging, default is off.
* if the library was compiled without DEBUG option, this function
* returns FALSE.
*----------------------------------------------------------------------*/
-boolean fribidi_set_debug (FriBidiEnv* fbenv, boolean debug);
+ boolean fribidi_set_debug (FriBidiEnv *fbenv, boolean debug);
/*======================================================================
* Management of various styles of defining and using FriBidiEnv.
@@ -239,8 +241,8 @@ boolean fribidi_set_debug (FriBidiEnv* fbenv, boolean debug);
#ifdef GLOBAL_FRIBIDIENV
#define VALIDATE_FRIBIDIENV(env) if ((env) == NULL) (env) = &(fribidi_global_env)
-extern FriBidiEnv fribidi_global_env;
-#endif /* GLOBAL_FRIBIDIENV */
+ extern FriBidiEnv fribidi_global_env;
+#endif /* GLOBAL_FRIBIDIENV */
/*======================================================================
@@ -248,7 +250,7 @@ extern FriBidiEnv fribidi_global_env;
*----------------------------------------------------------------------*/
#ifdef VERIFY_NO_GLOBAL_FRIBIDIENV
#define VALIDATE_FRIBIDIENV(env) if ((env) == NULL) Panic()
-#endif /* VERIFY_NO_GLOBAL_FRIBIDIENV */
+#endif /* VERIFY_NO_GLOBAL_FRIBIDIENV */
/*======================================================================
@@ -257,14 +259,14 @@ extern FriBidiEnv fribidi_global_env;
#ifdef NO_FRIBIDIENV_VALIDATION
#define VALIDATE_FRIBIDIENV(env) while (0) {}
/* Null definition, for environments, which guarantee valid
- ** environments, and need the efficiency.
- */
-#endif /* NO_FRIBIDIENV_VALIDATION */
+ ** environments, and need the efficiency.
+ */
+#endif /* NO_FRIBIDIENV_VALIDATION */
#ifdef __cplusplus
}
#endif
-#endif /* FRIBIDI_ENV_H */
+#endif /* FRIBIDI_ENV_H */
/* End of fribidi_env.h */
diff --git a/fribidi_main.c b/fribidi_main.c
index a2857e0..06be6f7 100644
--- a/fribidi_main.c
+++ b/fribidi_main.c
@@ -89,8 +89,7 @@ help (void)
" --levels --changes\n"
" -d, --debug Output debug information\n"
" -t, --test Test %s, same as --clean --nobreak --showinput \\\n"
- " --reordernsm\n",
- FRIBIDI_PACKAGE);
+ " --reordernsm\n", FRIBIDI_PACKAGE);
#ifdef FRIBIDI_NO_CHARSETS
printf (" -c, --charset CS Specify character set, default is %s \\\n"
" CS should be a valid iconv character set name\n",
@@ -155,7 +154,7 @@ help (void)
static void
version (void)
{
- printf (fribidi_version_info);
+ printf ("%s", fribidi_version_info);
exit (0);
}
@@ -403,10 +402,14 @@ main (int argc, char *argv[])
FriBidiStrIndex new_len;
boolean log2vis;
- visual = show_visual ? ALLOCATE (NULL, FriBidiChar, len + 1) : NULL;
- ltov = show_ltov ? ALLOCATE (NULL, FriBidiStrIndex, len + 1) : NULL;
- vtol = show_vtol ? ALLOCATE (NULL, FriBidiStrIndex, len + 1) : NULL;
- levels = show_levels ? ALLOCATE (NULL, FriBidiLevel, len + 1) : NULL;
+ visual =
+ show_visual ? ALLOCATE (NULL, FriBidiChar, len + 1) : NULL;
+ ltov =
+ show_ltov ? ALLOCATE (NULL, FriBidiStrIndex, len + 1) : NULL;
+ vtol =
+ show_vtol ? ALLOCATE (NULL, FriBidiStrIndex, len + 1) : NULL;
+ levels =
+ show_levels ? ALLOCATE (NULL, FriBidiLevel, len + 1) : NULL;
/* Create a bidi string. */
base = input_base_direction;
@@ -424,8 +427,8 @@ main (int argc, char *argv[])
/* Remove explicit marks, if asked for. */
if (do_clean)
len =
- fribidi_remove_bidi_marks (NULL, visual, len, ltov, vtol,
- levels);
+ fribidi_remove_bidi_marks (NULL, visual, len, ltov,
+ vtol, levels);
if (show_visual)
{
diff --git a/fribidi_mem.c b/fribidi_mem.c
index 26ce370..eca78e7 100644
--- a/fribidi_mem.c
+++ b/fribidi_mem.c
@@ -36,7 +36,7 @@ struct _FriBidiMemChunk
};
FriBidiList *
-fribidi_list_append (FriBidiEnv* fribidienv, FriBidiList *list, void *data)
+fribidi_list_append (FriBidiEnv *fribidienv, FriBidiList *list, void *data)
{
FriBidiList *node, *last;
@@ -55,11 +55,12 @@ fribidi_list_append (FriBidiEnv* fribidienv, FriBidiList *list, void *data)
}
FriBidiMemChunk *
-fribidi_mem_chunk_new (FriBidiEnv* fribidienv,
+fribidi_mem_chunk_new (FriBidiEnv *fribidienv,
char *name, int atom_size, unsigned long area_size,
int type)
{
- FriBidiMemChunk *m = (FriBidiMemChunk *) fribidi_malloc (fribidienv, sizeof (FriBidiMemChunk));
+ FriBidiMemChunk *m =
+ (FriBidiMemChunk *) fribidi_malloc (fribidienv, sizeof (FriBidiMemChunk));
m->name = name;
m->atom_size = atom_size;
@@ -73,15 +74,14 @@ fribidi_mem_chunk_new (FriBidiEnv* fribidienv,
}
void
-fribidi_mem_chunk_destroy (FriBidiEnv* fribidienv,
- FriBidiMemChunk *mem_chunk)
+fribidi_mem_chunk_destroy (FriBidiEnv *fribidienv, FriBidiMemChunk *mem_chunk)
{
- fribidi_free (fribidienv,mem_chunk);
+ fribidi_free (fribidienv, mem_chunk);
return;
}
void *
-fribidi_mem_chunk_alloc (FriBidiEnv* fribidienv, FriBidiMemChunk *mem_chunk)
+fribidi_mem_chunk_alloc (FriBidiEnv *fribidienv, FriBidiMemChunk *mem_chunk)
{
void *m;
@@ -89,7 +89,8 @@ fribidi_mem_chunk_alloc (FriBidiEnv* fribidienv, FriBidiMemChunk *mem_chunk)
{
if (mem_chunk->empty_size < mem_chunk->atom_size)
{
- mem_chunk->chunk = fribidi_malloc (fribidienv, mem_chunk->area_size);
+ mem_chunk->chunk =
+ fribidi_malloc (fribidienv, mem_chunk->area_size);
mem_chunk->empty_size = mem_chunk->area_size;
}
m = mem_chunk->chunk;
@@ -103,7 +104,7 @@ fribidi_mem_chunk_alloc (FriBidiEnv* fribidienv, FriBidiMemChunk *mem_chunk)
}
void
-fribidi_mem_chunk_free (FriBidiEnv* fribidienv,
+fribidi_mem_chunk_free (FriBidiEnv *fribidienv,
FriBidiMemChunk *mem_chunk, void *mem)
{
if (mem_chunk->type == FRIBIDI_ALLOC_AND_FREE)
diff --git a/fribidi_mem.h b/fribidi_mem.h
index dd90511..bc558b6 100644
--- a/fribidi_mem.h
+++ b/fribidi_mem.h
@@ -58,7 +58,7 @@ extern "C"
typedef struct _FriBidiEnv FriBidiEnv;
- FriBidiList *fribidi_list_append (FriBidiEnv* fribidienv,
+ FriBidiList *fribidi_list_append (FriBidiEnv *fribidienv,
FriBidiList *list, void *data);
typedef struct _FriBidiMemChunk FriBidiMemChunk;
@@ -66,17 +66,17 @@ extern "C"
#define FRIBIDI_ALLOC_ONLY 1
#define FRIBIDI_ALLOC_AND_FREE 2
- FriBidiMemChunk *fribidi_mem_chunk_new (FriBidiEnv* fribidienv,
+ FriBidiMemChunk *fribidi_mem_chunk_new (FriBidiEnv *fribidienv,
char *name,
int atom_size,
unsigned long area_size, int type);
- void fribidi_mem_chunk_destroy (FriBidiEnv* fribidienv,
+ void fribidi_mem_chunk_destroy (FriBidiEnv *fribidienv,
FriBidiMemChunk *mem_chunk);
- void *fribidi_mem_chunk_alloc (FriBidiEnv* fribidienv,
+ void *fribidi_mem_chunk_alloc (FriBidiEnv *fribidienv,
FriBidiMemChunk *mem_chunk);
- void *fribidi_mem_chunk_alloc0 (FriBidiEnv* fribidienv,
+ void *fribidi_mem_chunk_alloc0 (FriBidiEnv *fribidienv,
FriBidiMemChunk *mem_chunk);
- void fribidi_mem_chunk_free (FriBidiEnv* fribidienv,
+ void fribidi_mem_chunk_free (FriBidiEnv *fribidienv,
FriBidiMemChunk *mem_chunk, void *mem);
#define fribidi_mem_chunk_create(fbenv, type, pre_alloc, alloc_type) ( \
diff --git a/fribidi_mirroring.c b/fribidi_mirroring.c
index 27b7b7c..8857f2a 100644
--- a/fribidi_mirroring.c
+++ b/fribidi_mirroring.c
@@ -30,11 +30,11 @@
#include "fribidi_tab_mirroring.i"
boolean
-fribidi_get_mirror_char ( FriBidiEnv* fribidienv,
- /* Input */
- FriBidiChar ch,
- /* Output */
- FriBidiChar *mirrored_ch)
+fribidi_get_mirror_char (FriBidiEnv *fribidienv,
+ /* Input */
+ FriBidiChar ch,
+ /* Output */
+ FriBidiChar *mirrored_ch)
{
int pos, step;
boolean found;
diff --git a/fribidi_tab_char_type_2.i b/fribidi_tab_char_type_2.i
index eda58c4..9fb2298 100644
--- a/fribidi_tab_char_type_2.i
+++ b/fribidi_tab_char_type_2.i
@@ -1,5 +1,5 @@
/*
- This file was automatically created from UnicodeData.txt version 3.1.1
+ This file was automatically created from UnicodeData.txt version 3.2.0
by fribidi_create_char_types
*/
@@ -35,15 +35,15 @@
assumed sizeof(pointer) == 4
assumed sizeof(FriBidiPropCharType) == 1
- required memory: 22528
+ required memory: 23552
lookups: 2
partition shape: FriBidiPropertyBlock[2176][512]
- different table entries: 1 27
+ different table entries: 1 29
*/
/* *INDENT-OFF* */
-static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
+static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*29] = {
#define FriBidiPropertyBlockLevel1_0000 (FriBidiPropertyBlockLevel1 + 0x0)
@@ -102,9 +102,9 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,
LTR,LTR,LTR,LTR, ON, ON,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -113,7 +113,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
#define FriBidiPropertyBlockLevel1_0400 (FriBidiPropertyBlockLevel1 + 0x400)
@@ -165,7 +165,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
- AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+ AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL,NSM,NSM,
NSM,NSM,NSM,NSM,NSM, AL, AL,NSM,NSM, ON,NSM,NSM,NSM,NSM, AL, AL,
EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, BN,
@@ -414,13 +414,13 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -432,7 +432,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
#define FriBidiPropertyBlockLevel1_1800 (FriBidiPropertyBlockLevel1 + 0x1600)
- ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, BN, BN, BN, BN,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,NSM,NSM,NSM, BN,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -506,23 +506,23 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, WS, BS,LRE,RLE,PDF,LRO,RLO, WS,
ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, BN, BN, BN,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, WS,
+ BN, BN, BN, BN,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, BN, BN, BN,
EN,LTR,LTR,LTR, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
ON, ON,LTR, ON, ON, ON, ON,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR, ON,LTR, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,
ON, ON, ON, ON,LTR, ON,LTR, ON,LTR, ON,LTR,LTR,LTR,LTR, ET,LTR,
LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,
LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -533,7 +533,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
#define FriBidiPropertyBlockLevel1_2200 (FriBidiPropertyBlockLevel1 + 0x1C00)
@@ -552,7 +552,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
@@ -560,12 +560,12 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -586,8 +586,10 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
@@ -597,25 +599,23 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
#define FriBidiPropertyBlockLevel1_2600 (FriBidiPropertyBlockLevel1 + 0x2000)
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON,LTR,LTR, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -629,16 +629,16 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON,LTR, ON,
ON, ON, ON,LTR,LTR,LTR, ON,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
- LTR, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
#define FriBidiPropertyBlockLevel1_2800 (FriBidiPropertyBlockLevel1 + 0x2200)
@@ -658,6 +658,41 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2A00 (FriBidiPropertyBlockLevel1 + 0x2400)
+
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -675,7 +710,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_2E00 (FriBidiPropertyBlockLevel1 + 0x2400)
+#define FriBidiPropertyBlockLevel1_2E00 (FriBidiPropertyBlockLevel1 + 0x2600)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -710,19 +745,19 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_3000 (FriBidiPropertyBlockLevel1 + 0x2600)
+#define FriBidiPropertyBlockLevel1_3000 (FriBidiPropertyBlockLevel1 + 0x2800)
WS, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
- ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,
+ ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM, ON, ON,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -745,21 +780,56 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_A400 (FriBidiPropertyBlockLevel1 + 0x2800)
+#define FriBidiPropertyBlockLevel1_3200 (FriBidiPropertyBlockLevel1 + 0x2A00)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_A400 (FriBidiPropertyBlockLevel1 + 0x2C00)
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON,LTR, ON, ON, ON,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -780,7 +850,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_FA00 (FriBidiPropertyBlockLevel1 + 0x2A00)
+#define FriBidiPropertyBlockLevel1_FA00 (FriBidiPropertyBlockLevel1 + 0x2E00)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -815,7 +885,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel1_FC00 (FriBidiPropertyBlockLevel1 + 0x2C00)
+#define FriBidiPropertyBlockLevel1_FC00 (FriBidiPropertyBlockLevel1 + 0x3000)
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
@@ -850,13 +920,13 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel1_FE00 (FriBidiPropertyBlockLevel1 + 0x2E00)
+#define FriBidiPropertyBlockLevel1_FE00 (FriBidiPropertyBlockLevel1 + 0x3200)
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
- ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON, ON,LTR,LTR, ON, ON, ON, ON, ON, ON, ON,
CS, ON, CS,LTR, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ET,
ON, ON, ET, ET, ON, ON, ON,LTR, ON, ET, ET, ON,LTR,LTR,LTR,LTR,
AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
@@ -873,8 +943,8 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON,LTR,
- LTR, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+ ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -885,7 +955,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
ET, ET, ON, ON, ON, ET, ET,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, ON, ON,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_1D000 (FriBidiPropertyBlockLevel1 + 0x3000)
+#define FriBidiPropertyBlockLevel1_1D000 (FriBidiPropertyBlockLevel1 + 0x3400)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -920,7 +990,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel1_1D600 (FriBidiPropertyBlockLevel1 + 0x3200)
+#define FriBidiPropertyBlockLevel1_1D600 (FriBidiPropertyBlockLevel1 + 0x3600)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -955,7 +1025,7 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel1[512*27] = {
EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
-#define FriBidiPropertyBlockLevel1_E0000 (FriBidiPropertyBlockLevel1 + 0x3400)
+#define FriBidiPropertyBlockLevel1_E0000 (FriBidiPropertyBlockLevel1 + 0x3800)
LTR, BN,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
@@ -1016,11 +1086,11 @@ static const FriBidiPropCharType *FriBidiPropertyBlockLevel0[2176*1] = {
FriBidiPropertyBlockLevel1_2400, /* 2400..25FF */
FriBidiPropertyBlockLevel1_2600, /* 2600..27FF */
FriBidiPropertyBlockLevel1_2800, /* 2800..29FF */
- FriBidiPropertyBlockLevel1_1200, /* 2A00..2BFF */
+ FriBidiPropertyBlockLevel1_2A00, /* 2A00..2BFF */
FriBidiPropertyBlockLevel1_1200, /* 2C00..2DFF */
FriBidiPropertyBlockLevel1_2E00, /* 2E00..2FFF */
FriBidiPropertyBlockLevel1_3000, /* 3000..31FF */
- FriBidiPropertyBlockLevel1_1200, /* 3200..33FF */
+ FriBidiPropertyBlockLevel1_3200, /* 3200..33FF */
FriBidiPropertyBlockLevel1_1200, /* 3400..35FF */
FriBidiPropertyBlockLevel1_1200, /* 3600..37FF */
FriBidiPropertyBlockLevel1_1200, /* 3800..39FF */
diff --git a/fribidi_tab_char_type_9.i b/fribidi_tab_char_type_9.i
index 0e24c8c..92a2569 100644
--- a/fribidi_tab_char_type_9.i
+++ b/fribidi_tab_char_type_9.i
@@ -1,5 +1,5 @@
/*
- This file was automatically created from UnicodeData.txt version 3.1.1
+ This file was automatically created from UnicodeData.txt version 3.2.0
by fribidi_create_char_types
*/
@@ -35,15 +35,15 @@
assumed sizeof(pointer) == 4
assumed sizeof(FriBidiPropCharType) == 1
- required memory: 5100
+ required memory: 5244
lookups: 9
partition shape: FriBidiPropertyBlock[17][4][2][4][4][4][4][4][8]
- different table entries: 1 4 6 7 12 27 63 127 143
+ different table entries: 1 4 6 7 12 29 65 131 145
*/
/* *INDENT-OFF* */
-static const FriBidiPropCharType FriBidiPropertyBlockLevel8[8*143] = {
+static const FriBidiPropCharType FriBidiPropertyBlockLevel8[8*145] = {
#define FriBidiPropertyBlockLevel8_0000 (FriBidiPropertyBlockLevel8 + 0x0)
@@ -137,218 +137,218 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel8[8*143] = {
NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0348 (FriBidiPropertyBlockLevel8 + 0xB8)
-
- NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
-
-#define FriBidiPropertyBlockLevel8_0360 (FriBidiPropertyBlockLevel8 + 0xC0)
-
- NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
-
-#define FriBidiPropertyBlockLevel8_0370 (FriBidiPropertyBlockLevel8 + 0xC8)
+#define FriBidiPropertyBlockLevel8_0370 (FriBidiPropertyBlockLevel8 + 0xB8)
LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0378 (FriBidiPropertyBlockLevel8 + 0xD0)
+#define FriBidiPropertyBlockLevel8_0378 (FriBidiPropertyBlockLevel8 + 0xC0)
LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,
-#define FriBidiPropertyBlockLevel8_0380 (FriBidiPropertyBlockLevel8 + 0xD8)
+#define FriBidiPropertyBlockLevel8_0380 (FriBidiPropertyBlockLevel8 + 0xC8)
LTR,LTR,LTR,LTR, ON, ON,LTR, ON,
-#define FriBidiPropertyBlockLevel8_0480 (FriBidiPropertyBlockLevel8 + 0xE0)
+#define FriBidiPropertyBlockLevel8_0480 (FriBidiPropertyBlockLevel8 + 0xD0)
LTR,LTR,LTR,NSM,NSM,NSM,NSM,LTR,
-#define FriBidiPropertyBlockLevel8_0488 (FriBidiPropertyBlockLevel8 + 0xE8)
+#define FriBidiPropertyBlockLevel8_0488 (FriBidiPropertyBlockLevel8 + 0xD8)
NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0588 (FriBidiPropertyBlockLevel8 + 0xF0)
+#define FriBidiPropertyBlockLevel8_0588 (FriBidiPropertyBlockLevel8 + 0xE0)
LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0590 (FriBidiPropertyBlockLevel8 + 0xF8)
+#define FriBidiPropertyBlockLevel8_0590 (FriBidiPropertyBlockLevel8 + 0xE8)
RTL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_05A0 (FriBidiPropertyBlockLevel8 + 0x100)
+#define FriBidiPropertyBlockLevel8_05A0 (FriBidiPropertyBlockLevel8 + 0xF0)
NSM,NSM,RTL,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_05B8 (FriBidiPropertyBlockLevel8 + 0x108)
+#define FriBidiPropertyBlockLevel8_05B8 (FriBidiPropertyBlockLevel8 + 0xF8)
NSM,NSM,RTL,NSM,NSM,NSM,RTL,NSM,
-#define FriBidiPropertyBlockLevel8_05C0 (FriBidiPropertyBlockLevel8 + 0x110)
+#define FriBidiPropertyBlockLevel8_05C0 (FriBidiPropertyBlockLevel8 + 0x100)
RTL,NSM,NSM,RTL,NSM,RTL,RTL,RTL,
-#define FriBidiPropertyBlockLevel8_05C8 (FriBidiPropertyBlockLevel8 + 0x118)
+#define FriBidiPropertyBlockLevel8_05C8 (FriBidiPropertyBlockLevel8 + 0x108)
RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
-#define FriBidiPropertyBlockLevel8_0600 (FriBidiPropertyBlockLevel8 + 0x120)
+#define FriBidiPropertyBlockLevel8_0600 (FriBidiPropertyBlockLevel8 + 0x110)
AL, AL, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0608 (FriBidiPropertyBlockLevel8 + 0x128)
+#define FriBidiPropertyBlockLevel8_0608 (FriBidiPropertyBlockLevel8 + 0x118)
AL, AL, AL, AL, CS, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0648 (FriBidiPropertyBlockLevel8 + 0x130)
+#define FriBidiPropertyBlockLevel8_0648 (FriBidiPropertyBlockLevel8 + 0x120)
AL, AL, AL,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0650 (FriBidiPropertyBlockLevel8 + 0x138)
+#define FriBidiPropertyBlockLevel8_0650 (FriBidiPropertyBlockLevel8 + 0x128)
NSM,NSM,NSM,NSM,NSM,NSM, AL, AL,
-#define FriBidiPropertyBlockLevel8_0660 (FriBidiPropertyBlockLevel8 + 0x140)
+#define FriBidiPropertyBlockLevel8_0660 (FriBidiPropertyBlockLevel8 + 0x130)
AN, AN, AN, AN, AN, AN, AN, AN,
-#define FriBidiPropertyBlockLevel8_0668 (FriBidiPropertyBlockLevel8 + 0x148)
+#define FriBidiPropertyBlockLevel8_0668 (FriBidiPropertyBlockLevel8 + 0x138)
AN, AN, ET, AN, AN, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0670 (FriBidiPropertyBlockLevel8 + 0x150)
+#define FriBidiPropertyBlockLevel8_0670 (FriBidiPropertyBlockLevel8 + 0x140)
NSM, AL, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_06D0 (FriBidiPropertyBlockLevel8 + 0x158)
+#define FriBidiPropertyBlockLevel8_06D0 (FriBidiPropertyBlockLevel8 + 0x148)
AL, AL, AL, AL, AL, AL,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_06E0 (FriBidiPropertyBlockLevel8 + 0x160)
+#define FriBidiPropertyBlockLevel8_06D8 (FriBidiPropertyBlockLevel8 + 0x150)
+
+ NSM,NSM,NSM,NSM,NSM, AL,NSM,NSM,
+
+#define FriBidiPropertyBlockLevel8_06E0 (FriBidiPropertyBlockLevel8 + 0x158)
NSM,NSM,NSM,NSM,NSM, AL, AL,NSM,
-#define FriBidiPropertyBlockLevel8_06E8 (FriBidiPropertyBlockLevel8 + 0x168)
+#define FriBidiPropertyBlockLevel8_06E8 (FriBidiPropertyBlockLevel8 + 0x160)
NSM, ON,NSM,NSM,NSM,NSM, AL, AL,
-#define FriBidiPropertyBlockLevel8_06F8 (FriBidiPropertyBlockLevel8 + 0x170)
+#define FriBidiPropertyBlockLevel8_06F8 (FriBidiPropertyBlockLevel8 + 0x168)
EN, EN, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0708 (FriBidiPropertyBlockLevel8 + 0x178)
+#define FriBidiPropertyBlockLevel8_0708 (FriBidiPropertyBlockLevel8 + 0x170)
AL, AL, AL, AL, AL, AL, AL, BN,
-#define FriBidiPropertyBlockLevel8_0710 (FriBidiPropertyBlockLevel8 + 0x180)
+#define FriBidiPropertyBlockLevel8_0710 (FriBidiPropertyBlockLevel8 + 0x178)
AL,NSM, AL, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0748 (FriBidiPropertyBlockLevel8 + 0x188)
+#define FriBidiPropertyBlockLevel8_0748 (FriBidiPropertyBlockLevel8 + 0x180)
NSM,NSM,NSM, AL, AL, AL, AL, AL,
-#define FriBidiPropertyBlockLevel8_0900 (FriBidiPropertyBlockLevel8 + 0x190)
+#define FriBidiPropertyBlockLevel8_0900 (FriBidiPropertyBlockLevel8 + 0x188)
LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0938 (FriBidiPropertyBlockLevel8 + 0x198)
+#define FriBidiPropertyBlockLevel8_0938 (FriBidiPropertyBlockLevel8 + 0x190)
LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0940 (FriBidiPropertyBlockLevel8 + 0x1A0)
+#define FriBidiPropertyBlockLevel8_0940 (FriBidiPropertyBlockLevel8 + 0x198)
LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0948 (FriBidiPropertyBlockLevel8 + 0x1A8)
+#define FriBidiPropertyBlockLevel8_0948 (FriBidiPropertyBlockLevel8 + 0x1A0)
NSM,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0950 (FriBidiPropertyBlockLevel8 + 0x1B0)
+#define FriBidiPropertyBlockLevel8_0950 (FriBidiPropertyBlockLevel8 + 0x1A8)
LTR,NSM,NSM,NSM,NSM,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0960 (FriBidiPropertyBlockLevel8 + 0x1B8)
+#define FriBidiPropertyBlockLevel8_0960 (FriBidiPropertyBlockLevel8 + 0x1B0)
LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0980 (FriBidiPropertyBlockLevel8 + 0x1C0)
+#define FriBidiPropertyBlockLevel8_0980 (FriBidiPropertyBlockLevel8 + 0x1B8)
LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_09C8 (FriBidiPropertyBlockLevel8 + 0x1C8)
+#define FriBidiPropertyBlockLevel8_09C8 (FriBidiPropertyBlockLevel8 + 0x1C0)
LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_09F0 (FriBidiPropertyBlockLevel8 + 0x1D0)
+#define FriBidiPropertyBlockLevel8_09F0 (FriBidiPropertyBlockLevel8 + 0x1C8)
LTR,LTR, ET, ET,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0A00 (FriBidiPropertyBlockLevel8 + 0x1D8)
+#define FriBidiPropertyBlockLevel8_0A00 (FriBidiPropertyBlockLevel8 + 0x1D0)
LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0A40 (FriBidiPropertyBlockLevel8 + 0x1E0)
+#define FriBidiPropertyBlockLevel8_0A40 (FriBidiPropertyBlockLevel8 + 0x1D8)
LTR,NSM,NSM,LTR,LTR,LTR,LTR,NSM,
-#define FriBidiPropertyBlockLevel8_0A48 (FriBidiPropertyBlockLevel8 + 0x1E8)
+#define FriBidiPropertyBlockLevel8_0A48 (FriBidiPropertyBlockLevel8 + 0x1E0)
NSM,LTR,LTR,NSM,NSM,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0AC0 (FriBidiPropertyBlockLevel8 + 0x1F0)
+#define FriBidiPropertyBlockLevel8_0AC0 (FriBidiPropertyBlockLevel8 + 0x1E8)
LTR,NSM,NSM,NSM,NSM,NSM,LTR,NSM,
-#define FriBidiPropertyBlockLevel8_0B38 (FriBidiPropertyBlockLevel8 + 0x1F8)
+#define FriBidiPropertyBlockLevel8_0B38 (FriBidiPropertyBlockLevel8 + 0x1F0)
LTR,LTR,LTR,LTR,NSM,LTR,LTR,NSM,
-#define FriBidiPropertyBlockLevel8_0B40 (FriBidiPropertyBlockLevel8 + 0x200)
+#define FriBidiPropertyBlockLevel8_0B40 (FriBidiPropertyBlockLevel8 + 0x1F8)
LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0B50 (FriBidiPropertyBlockLevel8 + 0x208)
+#define FriBidiPropertyBlockLevel8_0B50 (FriBidiPropertyBlockLevel8 + 0x200)
LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,
-#define FriBidiPropertyBlockLevel8_0BC0 (FriBidiPropertyBlockLevel8 + 0x210)
+#define FriBidiPropertyBlockLevel8_0BC0 (FriBidiPropertyBlockLevel8 + 0x208)
NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0C38 (FriBidiPropertyBlockLevel8 + 0x218)
+#define FriBidiPropertyBlockLevel8_0C38 (FriBidiPropertyBlockLevel8 + 0x210)
LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0C40 (FriBidiPropertyBlockLevel8 + 0x220)
+#define FriBidiPropertyBlockLevel8_0C40 (FriBidiPropertyBlockLevel8 + 0x218)
NSM,LTR,LTR,LTR,LTR,LTR,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0C48 (FriBidiPropertyBlockLevel8 + 0x228)
+#define FriBidiPropertyBlockLevel8_0C48 (FriBidiPropertyBlockLevel8 + 0x220)
NSM,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0C50 (FriBidiPropertyBlockLevel8 + 0x230)
+#define FriBidiPropertyBlockLevel8_0C50 (FriBidiPropertyBlockLevel8 + 0x228)
LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,
-#define FriBidiPropertyBlockLevel8_0CB8 (FriBidiPropertyBlockLevel8 + 0x238)
+#define FriBidiPropertyBlockLevel8_0CB8 (FriBidiPropertyBlockLevel8 + 0x230)
LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,
-#define FriBidiPropertyBlockLevel8_0CC8 (FriBidiPropertyBlockLevel8 + 0x240)
+#define FriBidiPropertyBlockLevel8_0CC8 (FriBidiPropertyBlockLevel8 + 0x238)
LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_0DD0 (FriBidiPropertyBlockLevel8 + 0x248)
+#define FriBidiPropertyBlockLevel8_0DD0 (FriBidiPropertyBlockLevel8 + 0x240)
LTR,LTR,NSM,NSM,NSM,LTR,NSM,LTR,
-#define FriBidiPropertyBlockLevel8_0E30 (FriBidiPropertyBlockLevel8 + 0x250)
+#define FriBidiPropertyBlockLevel8_0E30 (FriBidiPropertyBlockLevel8 + 0x248)
LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_0E38 (FriBidiPropertyBlockLevel8 + 0x258)
+#define FriBidiPropertyBlockLevel8_0E38 (FriBidiPropertyBlockLevel8 + 0x250)
NSM,NSM,NSM,LTR,LTR,LTR,LTR, ET,
+#define FriBidiPropertyBlockLevel8_0E48 (FriBidiPropertyBlockLevel8 + 0x258)
+
+ NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+
#define FriBidiPropertyBlockLevel8_0EB8 (FriBidiPropertyBlockLevel8 + 0x260)
NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,
@@ -389,236 +389,244 @@ static const FriBidiPropCharType FriBidiPropertyBlockLevel8[8*143] = {
LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_17D0 (FriBidiPropertyBlockLevel8 + 0x2B0)
+#define FriBidiPropertyBlockLevel8_1710 (FriBidiPropertyBlockLevel8 + 0x2B0)
+
+ LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel8_17D0 (FriBidiPropertyBlockLevel8 + 0x2B8)
NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_17D8 (FriBidiPropertyBlockLevel8 + 0x2B8)
+#define FriBidiPropertyBlockLevel8_17D8 (FriBidiPropertyBlockLevel8 + 0x2C0)
LTR,LTR,LTR, ET,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_1808 (FriBidiPropertyBlockLevel8 + 0x2C0)
+#define FriBidiPropertyBlockLevel8_1808 (FriBidiPropertyBlockLevel8 + 0x2C8)
- ON, ON, ON, BN, BN, BN, BN,LTR,
+ ON, ON, ON,NSM,NSM,NSM, BN,LTR,
-#define FriBidiPropertyBlockLevel8_1FB8 (FriBidiPropertyBlockLevel8 + 0x2C8)
+#define FriBidiPropertyBlockLevel8_1FB8 (FriBidiPropertyBlockLevel8 + 0x2D0)
LTR,LTR,LTR,LTR,LTR, ON,LTR, ON,
-#define FriBidiPropertyBlockLevel8_1FC0 (FriBidiPropertyBlockLevel8 + 0x2D0)
+#define FriBidiPropertyBlockLevel8_1FC0 (FriBidiPropertyBlockLevel8 + 0x2D8)
ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_1FF8 (FriBidiPropertyBlockLevel8 + 0x2D8)
+#define FriBidiPropertyBlockLevel8_1FF8 (FriBidiPropertyBlockLevel8 + 0x2E0)
LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,
-#define FriBidiPropertyBlockLevel8_2000 (FriBidiPropertyBlockLevel8 + 0x2E0)
+#define FriBidiPropertyBlockLevel8_2000 (FriBidiPropertyBlockLevel8 + 0x2E8)
WS, WS, WS, WS, WS, WS, WS, WS,
-#define FriBidiPropertyBlockLevel8_2008 (FriBidiPropertyBlockLevel8 + 0x2E8)
+#define FriBidiPropertyBlockLevel8_2008 (FriBidiPropertyBlockLevel8 + 0x2F0)
WS, WS, WS, BN, BN, BN,LTR,RTL,
-#define FriBidiPropertyBlockLevel8_2028 (FriBidiPropertyBlockLevel8 + 0x2F0)
+#define FriBidiPropertyBlockLevel8_2028 (FriBidiPropertyBlockLevel8 + 0x2F8)
WS, BS,LRE,RLE,PDF,LRO,RLO, WS,
-#define FriBidiPropertyBlockLevel8_2030 (FriBidiPropertyBlockLevel8 + 0x2F8)
+#define FriBidiPropertyBlockLevel8_2030 (FriBidiPropertyBlockLevel8 + 0x300)
ET, ET, ET, ET, ET, ON, ON, ON,
-#define FriBidiPropertyBlockLevel8_2040 (FriBidiPropertyBlockLevel8 + 0x300)
+#define FriBidiPropertyBlockLevel8_2050 (FriBidiPropertyBlockLevel8 + 0x308)
- ON, ON, ON, ON, ON, ON, ON,LTR,
+ ON, ON, ON,LTR,LTR,LTR,LTR, ON,
+
+#define FriBidiPropertyBlockLevel8_2058 (FriBidiPropertyBlockLevel8 + 0x310)
+
+ LTR,LTR,LTR,LTR,LTR,LTR,LTR, WS,
+
+#define FriBidiPropertyBlockLevel8_2060 (FriBidiPropertyBlockLevel8 + 0x318)
-#define FriBidiPropertyBlockLevel8_2068 (FriBidiPropertyBlockLevel8 + 0x308)
+ BN, BN, BN, BN,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel8_2068 (FriBidiPropertyBlockLevel8 + 0x320)
LTR,LTR, BN, BN, BN, BN, BN, BN,
-#define FriBidiPropertyBlockLevel8_2070 (FriBidiPropertyBlockLevel8 + 0x310)
+#define FriBidiPropertyBlockLevel8_2070 (FriBidiPropertyBlockLevel8 + 0x328)
EN,LTR,LTR,LTR, EN, EN, EN, EN,
-#define FriBidiPropertyBlockLevel8_2078 (FriBidiPropertyBlockLevel8 + 0x318)
+#define FriBidiPropertyBlockLevel8_2078 (FriBidiPropertyBlockLevel8 + 0x330)
EN, EN, ET, ET, ON, ON, ON,LTR,
-#define FriBidiPropertyBlockLevel8_20A0 (FriBidiPropertyBlockLevel8 + 0x320)
+#define FriBidiPropertyBlockLevel8_20A0 (FriBidiPropertyBlockLevel8 + 0x338)
ET, ET, ET, ET, ET, ET, ET, ET,
-#define FriBidiPropertyBlockLevel8_2100 (FriBidiPropertyBlockLevel8 + 0x328)
+#define FriBidiPropertyBlockLevel8_20B0 (FriBidiPropertyBlockLevel8 + 0x340)
+
+ ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel8_20E8 (FriBidiPropertyBlockLevel8 + 0x348)
+
+ NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel8_2100 (FriBidiPropertyBlockLevel8 + 0x350)
ON, ON,LTR, ON, ON, ON, ON,LTR,
-#define FriBidiPropertyBlockLevel8_2110 (FriBidiPropertyBlockLevel8 + 0x330)
+#define FriBidiPropertyBlockLevel8_2110 (FriBidiPropertyBlockLevel8 + 0x358)
LTR,LTR,LTR,LTR, ON,LTR, ON, ON,
-#define FriBidiPropertyBlockLevel8_2118 (FriBidiPropertyBlockLevel8 + 0x338)
+#define FriBidiPropertyBlockLevel8_2118 (FriBidiPropertyBlockLevel8 + 0x360)
ON,LTR,LTR,LTR,LTR,LTR, ON, ON,
-#define FriBidiPropertyBlockLevel8_2120 (FriBidiPropertyBlockLevel8 + 0x340)
+#define FriBidiPropertyBlockLevel8_2120 (FriBidiPropertyBlockLevel8 + 0x368)
ON, ON, ON, ON,LTR, ON,LTR, ON,
-#define FriBidiPropertyBlockLevel8_2128 (FriBidiPropertyBlockLevel8 + 0x348)
+#define FriBidiPropertyBlockLevel8_2128 (FriBidiPropertyBlockLevel8 + 0x370)
LTR, ON,LTR,LTR,LTR,LTR, ET,LTR,
-#define FriBidiPropertyBlockLevel8_21F0 (FriBidiPropertyBlockLevel8 + 0x350)
+#define FriBidiPropertyBlockLevel8_2140 (FriBidiPropertyBlockLevel8 + 0x378)
- ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+ ON, ON, ON, ON, ON,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_2210 (FriBidiPropertyBlockLevel8 + 0x358)
+#define FriBidiPropertyBlockLevel8_2148 (FriBidiPropertyBlockLevel8 + 0x380)
- ON, ON, ET, ET, ON, ON, ON, ON,
+ LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_2378 (FriBidiPropertyBlockLevel8 + 0x360)
+#define FriBidiPropertyBlockLevel8_2210 (FriBidiPropertyBlockLevel8 + 0x388)
- LTR,LTR,LTR, ON,LTR, ON, ON, ON,
+ ON, ON, ET, ET, ON, ON, ON, ON,
-#define FriBidiPropertyBlockLevel8_2390 (FriBidiPropertyBlockLevel8 + 0x368)
+#define FriBidiPropertyBlockLevel8_2390 (FriBidiPropertyBlockLevel8 + 0x390)
ON, ON, ON, ON, ON,LTR, ON, ON,
-#define FriBidiPropertyBlockLevel8_2398 (FriBidiPropertyBlockLevel8 + 0x370)
+#define FriBidiPropertyBlockLevel8_23C8 (FriBidiPropertyBlockLevel8 + 0x398)
+
+ ON, ON, ON, ON, ON, ON, ON,LTR,
+
+#define FriBidiPropertyBlockLevel8_2448 (FriBidiPropertyBlockLevel8 + 0x3A0)
ON, ON, ON,LTR,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_2498 (FriBidiPropertyBlockLevel8 + 0x378)
+#define FriBidiPropertyBlockLevel8_2498 (FriBidiPropertyBlockLevel8 + 0x3A8)
EN, EN, EN, EN,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_24E8 (FriBidiPropertyBlockLevel8 + 0x380)
+#define FriBidiPropertyBlockLevel8_24E8 (FriBidiPropertyBlockLevel8 + 0x3B0)
+
+ LTR,LTR, EN, ON, ON, ON, ON, ON,
- LTR,LTR, EN,LTR,LTR,LTR,LTR,LTR,
+#define FriBidiPropertyBlockLevel8_2610 (FriBidiPropertyBlockLevel8 + 0x3B8)
-#define FriBidiPropertyBlockLevel8_2618 (FriBidiPropertyBlockLevel8 + 0x388)
+ ON, ON, ON, ON,LTR,LTR, ON, ON,
+
+#define FriBidiPropertyBlockLevel8_2618 (FriBidiPropertyBlockLevel8 + 0x3C0)
LTR, ON, ON, ON, ON, ON, ON, ON,
-#define FriBidiPropertyBlockLevel8_2700 (FriBidiPropertyBlockLevel8 + 0x390)
+#define FriBidiPropertyBlockLevel8_2700 (FriBidiPropertyBlockLevel8 + 0x3C8)
LTR, ON, ON, ON, ON,LTR, ON, ON,
-#define FriBidiPropertyBlockLevel8_2708 (FriBidiPropertyBlockLevel8 + 0x398)
+#define FriBidiPropertyBlockLevel8_2708 (FriBidiPropertyBlockLevel8 + 0x3D0)
ON, ON,LTR,LTR, ON, ON, ON, ON,
-#define FriBidiPropertyBlockLevel8_2750 (FriBidiPropertyBlockLevel8 + 0x3A0)
+#define FriBidiPropertyBlockLevel8_2750 (FriBidiPropertyBlockLevel8 + 0x3D8)
ON, ON, ON,LTR,LTR,LTR, ON,LTR,
-#define FriBidiPropertyBlockLevel8_2770 (FriBidiPropertyBlockLevel8 + 0x3A8)
-
- LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,
+#define FriBidiPropertyBlockLevel8_27E8 (FriBidiPropertyBlockLevel8 + 0x3E0)
-#define FriBidiPropertyBlockLevel8_2790 (FriBidiPropertyBlockLevel8 + 0x3B0)
-
- ON, ON, ON, ON, ON,LTR,LTR,LTR,
+ ON, ON, ON, ON,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_3000 (FriBidiPropertyBlockLevel8 + 0x3B8)
+#define FriBidiPropertyBlockLevel8_3000 (FriBidiPropertyBlockLevel8 + 0x3E8)
WS, ON, ON, ON, ON,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_3028 (FriBidiPropertyBlockLevel8 + 0x3C0)
+#define FriBidiPropertyBlockLevel8_3028 (FriBidiPropertyBlockLevel8 + 0x3F0)
LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_3098 (FriBidiPropertyBlockLevel8 + 0x3C8)
+#define FriBidiPropertyBlockLevel8_3098 (FriBidiPropertyBlockLevel8 + 0x3F8)
LTR,NSM,NSM, ON, ON,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_30F8 (FriBidiPropertyBlockLevel8 + 0x3D0)
+#define FriBidiPropertyBlockLevel8_30F8 (FriBidiPropertyBlockLevel8 + 0x400)
LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_A4B0 (FriBidiPropertyBlockLevel8 + 0x3D8)
-
- ON, ON, ON, ON,LTR, ON, ON, ON,
-
-#define FriBidiPropertyBlockLevel8_A4C0 (FriBidiPropertyBlockLevel8 + 0x3E0)
-
- ON,LTR, ON, ON, ON,LTR, ON,LTR,
-
-#define FriBidiPropertyBlockLevel8_FB18 (FriBidiPropertyBlockLevel8 + 0x3E8)
+#define FriBidiPropertyBlockLevel8_FB18 (FriBidiPropertyBlockLevel8 + 0x408)
LTR,LTR,LTR,LTR,LTR,RTL,NSM,RTL,
-#define FriBidiPropertyBlockLevel8_FB28 (FriBidiPropertyBlockLevel8 + 0x3F0)
+#define FriBidiPropertyBlockLevel8_FB28 (FriBidiPropertyBlockLevel8 + 0x410)
RTL, ET,RTL,RTL,RTL,RTL,RTL,RTL,
-#define FriBidiPropertyBlockLevel8_FD38 (FriBidiPropertyBlockLevel8 + 0x3F8)
+#define FriBidiPropertyBlockLevel8_FD38 (FriBidiPropertyBlockLevel8 + 0x418)
AL, AL, AL, AL, AL, AL, ON, ON,
-#define FriBidiPropertyBlockLevel8_FE50 (FriBidiPropertyBlockLevel8 + 0x400)
+#define FriBidiPropertyBlockLevel8_FE50 (FriBidiPropertyBlockLevel8 + 0x420)
CS, ON, CS,LTR, ON, CS, ON, ON,
-#define FriBidiPropertyBlockLevel8_FE58 (FriBidiPropertyBlockLevel8 + 0x408)
+#define FriBidiPropertyBlockLevel8_FE58 (FriBidiPropertyBlockLevel8 + 0x428)
ON, ON, ON, ON, ON, ON, ON, ET,
-#define FriBidiPropertyBlockLevel8_FE60 (FriBidiPropertyBlockLevel8 + 0x410)
+#define FriBidiPropertyBlockLevel8_FE60 (FriBidiPropertyBlockLevel8 + 0x430)
ON, ON, ET, ET, ON, ON, ON,LTR,
-#define FriBidiPropertyBlockLevel8_FE68 (FriBidiPropertyBlockLevel8 + 0x418)
+#define FriBidiPropertyBlockLevel8_FE68 (FriBidiPropertyBlockLevel8 + 0x438)
ON, ET, ET, ON,LTR,LTR,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_FF00 (FriBidiPropertyBlockLevel8 + 0x420)
+#define FriBidiPropertyBlockLevel8_FF00 (FriBidiPropertyBlockLevel8 + 0x440)
LTR, ON, ON, ET, ET, ET, ON, ON,
-#define FriBidiPropertyBlockLevel8_FF58 (FriBidiPropertyBlockLevel8 + 0x428)
-
- LTR,LTR,LTR, ON, ON, ON, ON,LTR,
-
-#define FriBidiPropertyBlockLevel8_FF60 (FriBidiPropertyBlockLevel8 + 0x430)
-
- LTR, ON, ON, ON, ON, ON,LTR,LTR,
-
-#define FriBidiPropertyBlockLevel8_FFE0 (FriBidiPropertyBlockLevel8 + 0x438)
+#define FriBidiPropertyBlockLevel8_FFE0 (FriBidiPropertyBlockLevel8 + 0x448)
ET, ET, ON, ON, ON, ET, ET,LTR,
-#define FriBidiPropertyBlockLevel8_FFF8 (FriBidiPropertyBlockLevel8 + 0x440)
+#define FriBidiPropertyBlockLevel8_FFF8 (FriBidiPropertyBlockLevel8 + 0x450)
LTR, BN, BN, BN, ON, ON,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_1D170 (FriBidiPropertyBlockLevel8 + 0x448)
+#define FriBidiPropertyBlockLevel8_1D170 (FriBidiPropertyBlockLevel8 + 0x458)
LTR,LTR,LTR, BN, BN, BN, BN, BN,
-#define FriBidiPropertyBlockLevel8_1D178 (FriBidiPropertyBlockLevel8 + 0x450)
+#define FriBidiPropertyBlockLevel8_1D178 (FriBidiPropertyBlockLevel8 + 0x460)
BN, BN, BN,NSM,NSM,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_1D180 (FriBidiPropertyBlockLevel8 + 0x458)
+#define FriBidiPropertyBlockLevel8_1D180 (FriBidiPropertyBlockLevel8 + 0x468)
NSM,NSM,NSM,LTR,LTR,NSM,NSM,NSM,
-#define FriBidiPropertyBlockLevel8_1D1A8 (FriBidiPropertyBlockLevel8 + 0x460)
+#define FriBidiPropertyBlockLevel8_1D1A8 (FriBidiPropertyBlockLevel8 + 0x470)
LTR,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
-#define FriBidiPropertyBlockLevel8_1D7C8 (FriBidiPropertyBlockLevel8 + 0x468)
+#define FriBidiPropertyBlockLevel8_1D7C8 (FriBidiPropertyBlockLevel8 + 0x478)
LTR,LTR,LTR,LTR,LTR,LTR, EN, EN,
-#define FriBidiPropertyBlockLevel8_E0000 (FriBidiPropertyBlockLevel8 + 0x470)
+#define FriBidiPropertyBlockLevel8_E0000 (FriBidiPropertyBlockLevel8 + 0x480)
LTR, BN,LTR,LTR,LTR,LTR,LTR,LTR,
};
-static const FriBidiPropCharType *FriBidiPropertyBlockLevel7[4*127] = {
+static const FriBidiPropCharType *FriBidiPropertyBlockLevel7[4*131] = {
#define FriBidiPropertyBlockLevel7_0000 (FriBidiPropertyBlockLevel7 + 0x0)
@@ -707,14 +715,14 @@ static const FriBidiPropCharType *FriBidiPropertyBlockLevel7[4*127] = {
#define FriBidiPropertyBlockLevel7_0340 (FriBidiPropertyBlockLevel7 + 0x30)
FriBidiPropertyBlockLevel8_0300, /* 0340..0347 */
- FriBidiPropertyBlockLevel8_0348, /* 0348..034F */
+ FriBidiPropertyBlockLevel8_0300, /* 0348..034F */
FriBidiPropertyBlockLevel8_0048, /* 0350..0357 */
FriBidiPropertyBlockLevel8_0048, /* 0358..035F */
#define FriBidiPropertyBlockLevel7_0360 (FriBidiPropertyBlockLevel7 + 0x34)
- FriBidiPropertyBlockLevel8_0360, /* 0360..0367 */
- FriBidiPropertyBlockLevel8_0048, /* 0368..036F */
+ FriBidiPropertyBlockLevel8_0300, /* 0360..0367 */
+ FriBidiPropertyBlockLevel8_0300, /* 0368..036F */
FriBidiPropertyBlockLevel8_0370, /* 0370..0377 */
FriBidiPropertyBlockLevel8_0378, /* 0378..037F */
@@ -725,784 +733,812 @@ static const FriBidiPropCharType *FriBidiPropertyBlockLevel7[4*127] = {
FriBidiPropertyBlockLevel8_0048, /* 0390..0397 */
FriBidiPropertyBlockLevel8_0048, /* 0398..039F */
-#define FriBidiPropertyBlockLevel7_0480 (FriBidiPropertyBlockLevel7 + 0x3C)
+#define FriBidiPropertyBlockLevel7_03E0 (FriBidiPropertyBlockLevel7 + 0x3C)
+
+ FriBidiPropertyBlockLevel8_0048, /* 03E0..03E7 */
+ FriBidiPropertyBlockLevel8_0048, /* 03E8..03EF */
+ FriBidiPropertyBlockLevel8_0378, /* 03F0..03F7 */
+ FriBidiPropertyBlockLevel8_0048, /* 03F8..03FF */
+
+#define FriBidiPropertyBlockLevel7_0480 (FriBidiPropertyBlockLevel7 + 0x40)
FriBidiPropertyBlockLevel8_0480, /* 0480..0487 */
FriBidiPropertyBlockLevel8_0488, /* 0488..048F */
FriBidiPropertyBlockLevel8_0048, /* 0490..0497 */
FriBidiPropertyBlockLevel8_0048, /* 0498..049F */
-#define FriBidiPropertyBlockLevel7_0580 (FriBidiPropertyBlockLevel7 + 0x40)
+#define FriBidiPropertyBlockLevel7_0580 (FriBidiPropertyBlockLevel7 + 0x44)
FriBidiPropertyBlockLevel8_0048, /* 0580..0587 */
FriBidiPropertyBlockLevel8_0588, /* 0588..058F */
FriBidiPropertyBlockLevel8_0590, /* 0590..0597 */
FriBidiPropertyBlockLevel8_0300, /* 0598..059F */
-#define FriBidiPropertyBlockLevel7_05A0 (FriBidiPropertyBlockLevel7 + 0x44)
+#define FriBidiPropertyBlockLevel7_05A0 (FriBidiPropertyBlockLevel7 + 0x48)
FriBidiPropertyBlockLevel8_05A0, /* 05A0..05A7 */
FriBidiPropertyBlockLevel8_0300, /* 05A8..05AF */
FriBidiPropertyBlockLevel8_0300, /* 05B0..05B7 */
FriBidiPropertyBlockLevel8_05B8, /* 05B8..05BF */
-#define FriBidiPropertyBlockLevel7_05C0 (FriBidiPropertyBlockLevel7 + 0x48)
+#define FriBidiPropertyBlockLevel7_05C0 (FriBidiPropertyBlockLevel7 + 0x4C)
FriBidiPropertyBlockLevel8_05C0, /* 05C0..05C7 */
FriBidiPropertyBlockLevel8_05C8, /* 05C8..05CF */
FriBidiPropertyBlockLevel8_05C8, /* 05D0..05D7 */
FriBidiPropertyBlockLevel8_05C8, /* 05D8..05DF */
-#define FriBidiPropertyBlockLevel7_05E0 (FriBidiPropertyBlockLevel7 + 0x4C)
+#define FriBidiPropertyBlockLevel7_05E0 (FriBidiPropertyBlockLevel7 + 0x50)
FriBidiPropertyBlockLevel8_05C8, /* 05E0..05E7 */
FriBidiPropertyBlockLevel8_05C8, /* 05E8..05EF */
FriBidiPropertyBlockLevel8_05C8, /* 05F0..05F7 */
FriBidiPropertyBlockLevel8_05C8, /* 05F8..05FF */
-#define FriBidiPropertyBlockLevel7_0600 (FriBidiPropertyBlockLevel7 + 0x50)
+#define FriBidiPropertyBlockLevel7_0600 (FriBidiPropertyBlockLevel7 + 0x54)
FriBidiPropertyBlockLevel8_0600, /* 0600..0607 */
FriBidiPropertyBlockLevel8_0608, /* 0608..060F */
FriBidiPropertyBlockLevel8_0600, /* 0610..0617 */
FriBidiPropertyBlockLevel8_0600, /* 0618..061F */
-#define FriBidiPropertyBlockLevel7_0620 (FriBidiPropertyBlockLevel7 + 0x54)
+#define FriBidiPropertyBlockLevel7_0620 (FriBidiPropertyBlockLevel7 + 0x58)
FriBidiPropertyBlockLevel8_0600, /* 0620..0627 */
FriBidiPropertyBlockLevel8_0600, /* 0628..062F */
FriBidiPropertyBlockLevel8_0600, /* 0630..0637 */
FriBidiPropertyBlockLevel8_0600, /* 0638..063F */
-#define FriBidiPropertyBlockLevel7_0640 (FriBidiPropertyBlockLevel7 + 0x58)
+#define FriBidiPropertyBlockLevel7_0640 (FriBidiPropertyBlockLevel7 + 0x5C)
FriBidiPropertyBlockLevel8_0600, /* 0640..0647 */
FriBidiPropertyBlockLevel8_0648, /* 0648..064F */
FriBidiPropertyBlockLevel8_0650, /* 0650..0657 */
FriBidiPropertyBlockLevel8_0600, /* 0658..065F */
-#define FriBidiPropertyBlockLevel7_0660 (FriBidiPropertyBlockLevel7 + 0x5C)
+#define FriBidiPropertyBlockLevel7_0660 (FriBidiPropertyBlockLevel7 + 0x60)
FriBidiPropertyBlockLevel8_0660, /* 0660..0667 */
FriBidiPropertyBlockLevel8_0668, /* 0668..066F */
FriBidiPropertyBlockLevel8_0670, /* 0670..0677 */
FriBidiPropertyBlockLevel8_0600, /* 0678..067F */
-#define FriBidiPropertyBlockLevel7_06C0 (FriBidiPropertyBlockLevel7 + 0x60)
+#define FriBidiPropertyBlockLevel7_06C0 (FriBidiPropertyBlockLevel7 + 0x64)
FriBidiPropertyBlockLevel8_0600, /* 06C0..06C7 */
FriBidiPropertyBlockLevel8_0600, /* 06C8..06CF */
FriBidiPropertyBlockLevel8_06D0, /* 06D0..06D7 */
- FriBidiPropertyBlockLevel8_0300, /* 06D8..06DF */
+ FriBidiPropertyBlockLevel8_06D8, /* 06D8..06DF */
-#define FriBidiPropertyBlockLevel7_06E0 (FriBidiPropertyBlockLevel7 + 0x64)
+#define FriBidiPropertyBlockLevel7_06E0 (FriBidiPropertyBlockLevel7 + 0x68)
FriBidiPropertyBlockLevel8_06E0, /* 06E0..06E7 */
FriBidiPropertyBlockLevel8_06E8, /* 06E8..06EF */
FriBidiPropertyBlockLevel8_0030, /* 06F0..06F7 */
FriBidiPropertyBlockLevel8_06F8, /* 06F8..06FF */
-#define FriBidiPropertyBlockLevel7_0700 (FriBidiPropertyBlockLevel7 + 0x68)
+#define FriBidiPropertyBlockLevel7_0700 (FriBidiPropertyBlockLevel7 + 0x6C)
FriBidiPropertyBlockLevel8_0600, /* 0700..0707 */
FriBidiPropertyBlockLevel8_0708, /* 0708..070F */
FriBidiPropertyBlockLevel8_0710, /* 0710..0717 */
FriBidiPropertyBlockLevel8_0600, /* 0718..071F */
-#define FriBidiPropertyBlockLevel7_0720 (FriBidiPropertyBlockLevel7 + 0x6C)
+#define FriBidiPropertyBlockLevel7_0720 (FriBidiPropertyBlockLevel7 + 0x70)
FriBidiPropertyBlockLevel8_0600, /* 0720..0727 */
FriBidiPropertyBlockLevel8_0600, /* 0728..072F */
FriBidiPropertyBlockLevel8_0300, /* 0730..0737 */
FriBidiPropertyBlockLevel8_0300, /* 0738..073F */
-#define FriBidiPropertyBlockLevel7_0740 (FriBidiPropertyBlockLevel7 + 0x70)
+#define FriBidiPropertyBlockLevel7_0740 (FriBidiPropertyBlockLevel7 + 0x74)
FriBidiPropertyBlockLevel8_0300, /* 0740..0747 */
FriBidiPropertyBlockLevel8_0748, /* 0748..074F */
FriBidiPropertyBlockLevel8_0600, /* 0750..0757 */
FriBidiPropertyBlockLevel8_0600, /* 0758..075F */
-#define FriBidiPropertyBlockLevel7_07A0 (FriBidiPropertyBlockLevel7 + 0x74)
+#define FriBidiPropertyBlockLevel7_07A0 (FriBidiPropertyBlockLevel7 + 0x78)
FriBidiPropertyBlockLevel8_06D0, /* 07A0..07A7 */
FriBidiPropertyBlockLevel8_0300, /* 07A8..07AF */
FriBidiPropertyBlockLevel8_0670, /* 07B0..07B7 */
FriBidiPropertyBlockLevel8_0600, /* 07B8..07BF */
-#define FriBidiPropertyBlockLevel7_0900 (FriBidiPropertyBlockLevel7 + 0x78)
+#define FriBidiPropertyBlockLevel7_0900 (FriBidiPropertyBlockLevel7 + 0x7C)
FriBidiPropertyBlockLevel8_0900, /* 0900..0907 */
FriBidiPropertyBlockLevel8_0048, /* 0908..090F */
FriBidiPropertyBlockLevel8_0048, /* 0910..0917 */
FriBidiPropertyBlockLevel8_0048, /* 0918..091F */
-#define FriBidiPropertyBlockLevel7_0920 (FriBidiPropertyBlockLevel7 + 0x7C)
+#define FriBidiPropertyBlockLevel7_0920 (FriBidiPropertyBlockLevel7 + 0x80)
FriBidiPropertyBlockLevel8_0048, /* 0920..0927 */
FriBidiPropertyBlockLevel8_0048, /* 0928..092F */
FriBidiPropertyBlockLevel8_0048, /* 0930..0937 */
FriBidiPropertyBlockLevel8_0938, /* 0938..093F */
-#define FriBidiPropertyBlockLevel7_0940 (FriBidiPropertyBlockLevel7 + 0x80)
+#define FriBidiPropertyBlockLevel7_0940 (FriBidiPropertyBlockLevel7 + 0x84)
FriBidiPropertyBlockLevel8_0940, /* 0940..0947 */
FriBidiPropertyBlockLevel8_0948, /* 0948..094F */
FriBidiPropertyBlockLevel8_0950, /* 0950..0957 */
FriBidiPropertyBlockLevel8_0048, /* 0958..095F */
-#define FriBidiPropertyBlockLevel7_0960 (FriBidiPropertyBlockLevel7 + 0x84)
+#define FriBidiPropertyBlockLevel7_0960 (FriBidiPropertyBlockLevel7 + 0x88)
FriBidiPropertyBlockLevel8_0960, /* 0960..0967 */
FriBidiPropertyBlockLevel8_0048, /* 0968..096F */
FriBidiPropertyBlockLevel8_0048, /* 0970..0977 */
FriBidiPropertyBlockLevel8_0048, /* 0978..097F */
-#define FriBidiPropertyBlockLevel7_0980 (FriBidiPropertyBlockLevel7 + 0x88)
+#define FriBidiPropertyBlockLevel7_0980 (FriBidiPropertyBlockLevel7 + 0x8C)
FriBidiPropertyBlockLevel8_0980, /* 0980..0987 */
FriBidiPropertyBlockLevel8_0048, /* 0988..098F */
FriBidiPropertyBlockLevel8_0048, /* 0990..0997 */
FriBidiPropertyBlockLevel8_0048, /* 0998..099F */
-#define FriBidiPropertyBlockLevel7_09C0 (FriBidiPropertyBlockLevel7 + 0x8C)
+#define FriBidiPropertyBlockLevel7_09C0 (FriBidiPropertyBlockLevel7 + 0x90)
FriBidiPropertyBlockLevel8_0950, /* 09C0..09C7 */
FriBidiPropertyBlockLevel8_09C8, /* 09C8..09CF */
FriBidiPropertyBlockLevel8_0048, /* 09D0..09D7 */
FriBidiPropertyBlockLevel8_0048, /* 09D8..09DF */
-#define FriBidiPropertyBlockLevel7_09E0 (FriBidiPropertyBlockLevel7 + 0x90)
+#define FriBidiPropertyBlockLevel7_09E0 (FriBidiPropertyBlockLevel7 + 0x94)
FriBidiPropertyBlockLevel8_0960, /* 09E0..09E7 */
FriBidiPropertyBlockLevel8_0048, /* 09E8..09EF */
FriBidiPropertyBlockLevel8_09F0, /* 09F0..09F7 */
FriBidiPropertyBlockLevel8_0048, /* 09F8..09FF */
-#define FriBidiPropertyBlockLevel7_0A00 (FriBidiPropertyBlockLevel7 + 0x94)
+#define FriBidiPropertyBlockLevel7_0A00 (FriBidiPropertyBlockLevel7 + 0x98)
FriBidiPropertyBlockLevel8_0A00, /* 0A00..0A07 */
FriBidiPropertyBlockLevel8_0048, /* 0A08..0A0F */
FriBidiPropertyBlockLevel8_0048, /* 0A10..0A17 */
FriBidiPropertyBlockLevel8_0048, /* 0A18..0A1F */
-#define FriBidiPropertyBlockLevel7_0A40 (FriBidiPropertyBlockLevel7 + 0x98)
+#define FriBidiPropertyBlockLevel7_0A40 (FriBidiPropertyBlockLevel7 + 0x9C)
FriBidiPropertyBlockLevel8_0A40, /* 0A40..0A47 */
FriBidiPropertyBlockLevel8_0A48, /* 0A48..0A4F */
FriBidiPropertyBlockLevel8_0048, /* 0A50..0A57 */
FriBidiPropertyBlockLevel8_0048, /* 0A58..0A5F */
-#define FriBidiPropertyBlockLevel7_0A60 (FriBidiPropertyBlockLevel7 + 0x9C)
+#define FriBidiPropertyBlockLevel7_0A60 (FriBidiPropertyBlockLevel7 + 0xA0)
FriBidiPropertyBlockLevel8_0048, /* 0A60..0A67 */
FriBidiPropertyBlockLevel8_0048, /* 0A68..0A6F */
FriBidiPropertyBlockLevel8_0488, /* 0A70..0A77 */
FriBidiPropertyBlockLevel8_0048, /* 0A78..0A7F */
-#define FriBidiPropertyBlockLevel7_0AC0 (FriBidiPropertyBlockLevel7 + 0xA0)
+#define FriBidiPropertyBlockLevel7_0AC0 (FriBidiPropertyBlockLevel7 + 0xA4)
FriBidiPropertyBlockLevel8_0AC0, /* 0AC0..0AC7 */
FriBidiPropertyBlockLevel8_0948, /* 0AC8..0ACF */
FriBidiPropertyBlockLevel8_0048, /* 0AD0..0AD7 */
FriBidiPropertyBlockLevel8_0048, /* 0AD8..0ADF */
-#define FriBidiPropertyBlockLevel7_0B20 (FriBidiPropertyBlockLevel7 + 0xA4)
+#define FriBidiPropertyBlockLevel7_0B20 (FriBidiPropertyBlockLevel7 + 0xA8)
FriBidiPropertyBlockLevel8_0048, /* 0B20..0B27 */
FriBidiPropertyBlockLevel8_0048, /* 0B28..0B2F */
FriBidiPropertyBlockLevel8_0048, /* 0B30..0B37 */
FriBidiPropertyBlockLevel8_0B38, /* 0B38..0B3F */
-#define FriBidiPropertyBlockLevel7_0B40 (FriBidiPropertyBlockLevel7 + 0xA8)
+#define FriBidiPropertyBlockLevel7_0B40 (FriBidiPropertyBlockLevel7 + 0xAC)
FriBidiPropertyBlockLevel8_0B40, /* 0B40..0B47 */
FriBidiPropertyBlockLevel8_09C8, /* 0B48..0B4F */
FriBidiPropertyBlockLevel8_0B50, /* 0B50..0B57 */
FriBidiPropertyBlockLevel8_0048, /* 0B58..0B5F */
-#define FriBidiPropertyBlockLevel7_0BC0 (FriBidiPropertyBlockLevel7 + 0xAC)
+#define FriBidiPropertyBlockLevel7_0BC0 (FriBidiPropertyBlockLevel7 + 0xB0)
FriBidiPropertyBlockLevel8_0BC0, /* 0BC0..0BC7 */
FriBidiPropertyBlockLevel8_09C8, /* 0BC8..0BCF */
FriBidiPropertyBlockLevel8_0048, /* 0BD0..0BD7 */
FriBidiPropertyBlockLevel8_0048, /* 0BD8..0BDF */
-#define FriBidiPropertyBlockLevel7_0C20 (FriBidiPropertyBlockLevel7 + 0xB0)
+#define FriBidiPropertyBlockLevel7_0C20 (FriBidiPropertyBlockLevel7 + 0xB4)
FriBidiPropertyBlockLevel8_0048, /* 0C20..0C27 */
FriBidiPropertyBlockLevel8_0048, /* 0C28..0C2F */
FriBidiPropertyBlockLevel8_0048, /* 0C30..0C37 */
FriBidiPropertyBlockLevel8_0C38, /* 0C38..0C3F */
-#define FriBidiPropertyBlockLevel7_0C40 (FriBidiPropertyBlockLevel7 + 0xB4)
+#define FriBidiPropertyBlockLevel7_0C40 (FriBidiPropertyBlockLevel7 + 0xB8)
FriBidiPropertyBlockLevel8_0C40, /* 0C40..0C47 */
FriBidiPropertyBlockLevel8_0C48, /* 0C48..0C4F */
FriBidiPropertyBlockLevel8_0C50, /* 0C50..0C57 */
FriBidiPropertyBlockLevel8_0048, /* 0C58..0C5F */
-#define FriBidiPropertyBlockLevel7_0CA0 (FriBidiPropertyBlockLevel7 + 0xB8)
+#define FriBidiPropertyBlockLevel7_0CA0 (FriBidiPropertyBlockLevel7 + 0xBC)
FriBidiPropertyBlockLevel8_0048, /* 0CA0..0CA7 */
FriBidiPropertyBlockLevel8_0048, /* 0CA8..0CAF */
FriBidiPropertyBlockLevel8_0048, /* 0CB0..0CB7 */
FriBidiPropertyBlockLevel8_0CB8, /* 0CB8..0CBF */
-#define FriBidiPropertyBlockLevel7_0CC0 (FriBidiPropertyBlockLevel7 + 0xBC)
+#define FriBidiPropertyBlockLevel7_0CC0 (FriBidiPropertyBlockLevel7 + 0xC0)
FriBidiPropertyBlockLevel8_0B50, /* 0CC0..0CC7 */
FriBidiPropertyBlockLevel8_0CC8, /* 0CC8..0CCF */
FriBidiPropertyBlockLevel8_0048, /* 0CD0..0CD7 */
FriBidiPropertyBlockLevel8_0048, /* 0CD8..0CDF */
-#define FriBidiPropertyBlockLevel7_0D40 (FriBidiPropertyBlockLevel7 + 0xC0)
+#define FriBidiPropertyBlockLevel7_0D40 (FriBidiPropertyBlockLevel7 + 0xC4)
FriBidiPropertyBlockLevel8_0B40, /* 0D40..0D47 */
FriBidiPropertyBlockLevel8_09C8, /* 0D48..0D4F */
FriBidiPropertyBlockLevel8_0048, /* 0D50..0D57 */
FriBidiPropertyBlockLevel8_0048, /* 0D58..0D5F */
-#define FriBidiPropertyBlockLevel7_0DC0 (FriBidiPropertyBlockLevel7 + 0xC4)
+#define FriBidiPropertyBlockLevel7_0DC0 (FriBidiPropertyBlockLevel7 + 0xC8)
FriBidiPropertyBlockLevel8_0048, /* 0DC0..0DC7 */
FriBidiPropertyBlockLevel8_0A00, /* 0DC8..0DCF */
FriBidiPropertyBlockLevel8_0DD0, /* 0DD0..0DD7 */
FriBidiPropertyBlockLevel8_0048, /* 0DD8..0DDF */
-#define FriBidiPropertyBlockLevel7_0E20 (FriBidiPropertyBlockLevel7 + 0xC8)
+#define FriBidiPropertyBlockLevel7_0E20 (FriBidiPropertyBlockLevel7 + 0xCC)
FriBidiPropertyBlockLevel8_0048, /* 0E20..0E27 */
FriBidiPropertyBlockLevel8_0048, /* 0E28..0E2F */
FriBidiPropertyBlockLevel8_0E30, /* 0E30..0E37 */
FriBidiPropertyBlockLevel8_0E38, /* 0E38..0E3F */
-#define FriBidiPropertyBlockLevel7_0E40 (FriBidiPropertyBlockLevel7 + 0xCC)
+#define FriBidiPropertyBlockLevel7_0E40 (FriBidiPropertyBlockLevel7 + 0xD0)
FriBidiPropertyBlockLevel8_0CB8, /* 0E40..0E47 */
- FriBidiPropertyBlockLevel8_0348, /* 0E48..0E4F */
+ FriBidiPropertyBlockLevel8_0E48, /* 0E48..0E4F */
FriBidiPropertyBlockLevel8_0048, /* 0E50..0E57 */
FriBidiPropertyBlockLevel8_0048, /* 0E58..0E5F */
-#define FriBidiPropertyBlockLevel7_0EA0 (FriBidiPropertyBlockLevel7 + 0xD0)
+#define FriBidiPropertyBlockLevel7_0EA0 (FriBidiPropertyBlockLevel7 + 0xD4)
FriBidiPropertyBlockLevel8_0048, /* 0EA0..0EA7 */
FriBidiPropertyBlockLevel8_0048, /* 0EA8..0EAF */
FriBidiPropertyBlockLevel8_0E30, /* 0EB0..0EB7 */
FriBidiPropertyBlockLevel8_0EB8, /* 0EB8..0EBF */
-#define FriBidiPropertyBlockLevel7_0EC0 (FriBidiPropertyBlockLevel7 + 0xD4)
+#define FriBidiPropertyBlockLevel7_0EC0 (FriBidiPropertyBlockLevel7 + 0xD8)
FriBidiPropertyBlockLevel8_0048, /* 0EC0..0EC7 */
FriBidiPropertyBlockLevel8_0EC8, /* 0EC8..0ECF */
FriBidiPropertyBlockLevel8_0048, /* 0ED0..0ED7 */
FriBidiPropertyBlockLevel8_0048, /* 0ED8..0EDF */
-#define FriBidiPropertyBlockLevel7_0F00 (FriBidiPropertyBlockLevel7 + 0xD8)
+#define FriBidiPropertyBlockLevel7_0F00 (FriBidiPropertyBlockLevel7 + 0xDC)
FriBidiPropertyBlockLevel8_0048, /* 0F00..0F07 */
FriBidiPropertyBlockLevel8_0048, /* 0F08..0F0F */
FriBidiPropertyBlockLevel8_0048, /* 0F10..0F17 */
FriBidiPropertyBlockLevel8_0488, /* 0F18..0F1F */
-#define FriBidiPropertyBlockLevel7_0F20 (FriBidiPropertyBlockLevel7 + 0xDC)
+#define FriBidiPropertyBlockLevel7_0F20 (FriBidiPropertyBlockLevel7 + 0xE0)
FriBidiPropertyBlockLevel8_0048, /* 0F20..0F27 */
FriBidiPropertyBlockLevel8_0048, /* 0F28..0F2F */
FriBidiPropertyBlockLevel8_0F30, /* 0F30..0F37 */
FriBidiPropertyBlockLevel8_0F38, /* 0F38..0F3F */
-#define FriBidiPropertyBlockLevel7_0F60 (FriBidiPropertyBlockLevel7 + 0xE0)
+#define FriBidiPropertyBlockLevel7_0F60 (FriBidiPropertyBlockLevel7 + 0xE4)
FriBidiPropertyBlockLevel8_0048, /* 0F60..0F67 */
FriBidiPropertyBlockLevel8_0048, /* 0F68..0F6F */
FriBidiPropertyBlockLevel8_0940, /* 0F70..0F77 */
- FriBidiPropertyBlockLevel8_0348, /* 0F78..0F7F */
+ FriBidiPropertyBlockLevel8_0E48, /* 0F78..0F7F */
-#define FriBidiPropertyBlockLevel7_0F80 (FriBidiPropertyBlockLevel7 + 0xE4)
+#define FriBidiPropertyBlockLevel7_0F80 (FriBidiPropertyBlockLevel7 + 0xE8)
FriBidiPropertyBlockLevel8_0F80, /* 0F80..0F87 */
FriBidiPropertyBlockLevel8_0048, /* 0F88..0F8F */
FriBidiPropertyBlockLevel8_0300, /* 0F90..0F97 */
FriBidiPropertyBlockLevel8_0940, /* 0F98..0F9F */
-#define FriBidiPropertyBlockLevel7_0FA0 (FriBidiPropertyBlockLevel7 + 0xE8)
+#define FriBidiPropertyBlockLevel7_0FA0 (FriBidiPropertyBlockLevel7 + 0xEC)
FriBidiPropertyBlockLevel8_0300, /* 0FA0..0FA7 */
FriBidiPropertyBlockLevel8_0300, /* 0FA8..0FAF */
FriBidiPropertyBlockLevel8_0300, /* 0FB0..0FB7 */
FriBidiPropertyBlockLevel8_0FB8, /* 0FB8..0FBF */
-#define FriBidiPropertyBlockLevel7_0FC0 (FriBidiPropertyBlockLevel7 + 0xEC)
+#define FriBidiPropertyBlockLevel7_0FC0 (FriBidiPropertyBlockLevel7 + 0xF0)
FriBidiPropertyBlockLevel8_0B50, /* 0FC0..0FC7 */
FriBidiPropertyBlockLevel8_0048, /* 0FC8..0FCF */
FriBidiPropertyBlockLevel8_0048, /* 0FD0..0FD7 */
FriBidiPropertyBlockLevel8_0048, /* 0FD8..0FDF */
-#define FriBidiPropertyBlockLevel7_1020 (FriBidiPropertyBlockLevel7 + 0xF0)
+#define FriBidiPropertyBlockLevel7_1020 (FriBidiPropertyBlockLevel7 + 0xF4)
FriBidiPropertyBlockLevel8_0048, /* 1020..1027 */
FriBidiPropertyBlockLevel8_1028, /* 1028..102F */
FriBidiPropertyBlockLevel8_1030, /* 1030..1037 */
FriBidiPropertyBlockLevel8_0980, /* 1038..103F */
-#define FriBidiPropertyBlockLevel7_1680 (FriBidiPropertyBlockLevel7 + 0xF4)
+#define FriBidiPropertyBlockLevel7_1680 (FriBidiPropertyBlockLevel7 + 0xF8)
FriBidiPropertyBlockLevel8_1680, /* 1680..1687 */
FriBidiPropertyBlockLevel8_0048, /* 1688..168F */
FriBidiPropertyBlockLevel8_0048, /* 1690..1697 */
FriBidiPropertyBlockLevel8_1698, /* 1698..169F */
-#define FriBidiPropertyBlockLevel7_17A0 (FriBidiPropertyBlockLevel7 + 0xF8)
+#define FriBidiPropertyBlockLevel7_1700 (FriBidiPropertyBlockLevel7 + 0xFC)
+
+ FriBidiPropertyBlockLevel8_0048, /* 1700..1707 */
+ FriBidiPropertyBlockLevel8_0048, /* 1708..170F */
+ FriBidiPropertyBlockLevel8_1710, /* 1710..1717 */
+ FriBidiPropertyBlockLevel8_0048, /* 1718..171F */
+
+#define FriBidiPropertyBlockLevel7_1740 (FriBidiPropertyBlockLevel7 + 0x100)
+
+ FriBidiPropertyBlockLevel8_0048, /* 1740..1747 */
+ FriBidiPropertyBlockLevel8_0048, /* 1748..174F */
+ FriBidiPropertyBlockLevel8_0960, /* 1750..1757 */
+ FriBidiPropertyBlockLevel8_0048, /* 1758..175F */
+
+#define FriBidiPropertyBlockLevel7_17A0 (FriBidiPropertyBlockLevel7 + 0x104)
FriBidiPropertyBlockLevel8_0048, /* 17A0..17A7 */
FriBidiPropertyBlockLevel8_0048, /* 17A8..17AF */
FriBidiPropertyBlockLevel8_0CB8, /* 17B0..17B7 */
FriBidiPropertyBlockLevel8_0EC8, /* 17B8..17BF */
-#define FriBidiPropertyBlockLevel7_17C0 (FriBidiPropertyBlockLevel7 + 0xFC)
+#define FriBidiPropertyBlockLevel7_17C0 (FriBidiPropertyBlockLevel7 + 0x108)
FriBidiPropertyBlockLevel8_0B50, /* 17C0..17C7 */
FriBidiPropertyBlockLevel8_0940, /* 17C8..17CF */
FriBidiPropertyBlockLevel8_17D0, /* 17D0..17D7 */
FriBidiPropertyBlockLevel8_17D8, /* 17D8..17DF */
-#define FriBidiPropertyBlockLevel7_1800 (FriBidiPropertyBlockLevel7 + 0x100)
+#define FriBidiPropertyBlockLevel7_1800 (FriBidiPropertyBlockLevel7 + 0x10C)
FriBidiPropertyBlockLevel8_02C8, /* 1800..1807 */
FriBidiPropertyBlockLevel8_1808, /* 1808..180F */
FriBidiPropertyBlockLevel8_0048, /* 1810..1817 */
FriBidiPropertyBlockLevel8_0048, /* 1818..181F */
-#define FriBidiPropertyBlockLevel7_18A0 (FriBidiPropertyBlockLevel7 + 0x104)
+#define FriBidiPropertyBlockLevel7_18A0 (FriBidiPropertyBlockLevel7 + 0x110)
FriBidiPropertyBlockLevel8_0048, /* 18A0..18A7 */
FriBidiPropertyBlockLevel8_0980, /* 18A8..18AF */
FriBidiPropertyBlockLevel8_0048, /* 18B0..18B7 */
FriBidiPropertyBlockLevel8_0048, /* 18B8..18BF */
-#define FriBidiPropertyBlockLevel7_1FA0 (FriBidiPropertyBlockLevel7 + 0x108)
+#define FriBidiPropertyBlockLevel7_1FA0 (FriBidiPropertyBlockLevel7 + 0x114)
FriBidiPropertyBlockLevel8_0048, /* 1FA0..1FA7 */
FriBidiPropertyBlockLevel8_0048, /* 1FA8..1FAF */
FriBidiPropertyBlockLevel8_0048, /* 1FB0..1FB7 */
FriBidiPropertyBlockLevel8_1FB8, /* 1FB8..1FBF */
-#define FriBidiPropertyBlockLevel7_1FC0 (FriBidiPropertyBlockLevel7 + 0x10C)
+#define FriBidiPropertyBlockLevel7_1FC0 (FriBidiPropertyBlockLevel7 + 0x118)
FriBidiPropertyBlockLevel8_1FC0, /* 1FC0..1FC7 */
FriBidiPropertyBlockLevel8_02E0, /* 1FC8..1FCF */
FriBidiPropertyBlockLevel8_0048, /* 1FD0..1FD7 */
FriBidiPropertyBlockLevel8_02E0, /* 1FD8..1FDF */
-#define FriBidiPropertyBlockLevel7_1FE0 (FriBidiPropertyBlockLevel7 + 0x110)
+#define FriBidiPropertyBlockLevel7_1FE0 (FriBidiPropertyBlockLevel7 + 0x11C)
FriBidiPropertyBlockLevel8_0048, /* 1FE0..1FE7 */
FriBidiPropertyBlockLevel8_02E0, /* 1FE8..1FEF */
FriBidiPropertyBlockLevel8_0048, /* 1FF0..1FF7 */
FriBidiPropertyBlockLevel8_1FF8, /* 1FF8..1FFF */
-#define FriBidiPropertyBlockLevel7_2000 (FriBidiPropertyBlockLevel7 + 0x114)
+#define FriBidiPropertyBlockLevel7_2000 (FriBidiPropertyBlockLevel7 + 0x120)
FriBidiPropertyBlockLevel8_2000, /* 2000..2007 */
FriBidiPropertyBlockLevel8_2008, /* 2008..200F */
FriBidiPropertyBlockLevel8_02C8, /* 2010..2017 */
FriBidiPropertyBlockLevel8_02C8, /* 2018..201F */
-#define FriBidiPropertyBlockLevel7_2020 (FriBidiPropertyBlockLevel7 + 0x118)
+#define FriBidiPropertyBlockLevel7_2020 (FriBidiPropertyBlockLevel7 + 0x124)
FriBidiPropertyBlockLevel8_02C8, /* 2020..2027 */
FriBidiPropertyBlockLevel8_2028, /* 2028..202F */
FriBidiPropertyBlockLevel8_2030, /* 2030..2037 */
FriBidiPropertyBlockLevel8_02C8, /* 2038..203F */
-#define FriBidiPropertyBlockLevel7_2040 (FriBidiPropertyBlockLevel7 + 0x11C)
+#define FriBidiPropertyBlockLevel7_2040 (FriBidiPropertyBlockLevel7 + 0x128)
- FriBidiPropertyBlockLevel8_2040, /* 2040..2047 */
- FriBidiPropertyBlockLevel8_02E8, /* 2048..204F */
- FriBidiPropertyBlockLevel8_0048, /* 2050..2057 */
- FriBidiPropertyBlockLevel8_0048, /* 2058..205F */
+ FriBidiPropertyBlockLevel8_02C8, /* 2040..2047 */
+ FriBidiPropertyBlockLevel8_02C8, /* 2048..204F */
+ FriBidiPropertyBlockLevel8_2050, /* 2050..2057 */
+ FriBidiPropertyBlockLevel8_2058, /* 2058..205F */
-#define FriBidiPropertyBlockLevel7_2060 (FriBidiPropertyBlockLevel7 + 0x120)
+#define FriBidiPropertyBlockLevel7_2060 (FriBidiPropertyBlockLevel7 + 0x12C)
- FriBidiPropertyBlockLevel8_0048, /* 2060..2067 */
+ FriBidiPropertyBlockLevel8_2060, /* 2060..2067 */
FriBidiPropertyBlockLevel8_2068, /* 2068..206F */
FriBidiPropertyBlockLevel8_2070, /* 2070..2077 */
FriBidiPropertyBlockLevel8_2078, /* 2078..207F */
-#define FriBidiPropertyBlockLevel7_2080 (FriBidiPropertyBlockLevel7 + 0x124)
+#define FriBidiPropertyBlockLevel7_2080 (FriBidiPropertyBlockLevel7 + 0x130)
FriBidiPropertyBlockLevel8_0030, /* 2080..2087 */
FriBidiPropertyBlockLevel8_2078, /* 2088..208F */
FriBidiPropertyBlockLevel8_0048, /* 2090..2097 */
FriBidiPropertyBlockLevel8_0048, /* 2098..209F */
-#define FriBidiPropertyBlockLevel7_20A0 (FriBidiPropertyBlockLevel7 + 0x128)
+#define FriBidiPropertyBlockLevel7_20A0 (FriBidiPropertyBlockLevel7 + 0x134)
FriBidiPropertyBlockLevel8_20A0, /* 20A0..20A7 */
FriBidiPropertyBlockLevel8_20A0, /* 20A8..20AF */
- FriBidiPropertyBlockLevel8_0048, /* 20B0..20B7 */
+ FriBidiPropertyBlockLevel8_20B0, /* 20B0..20B7 */
FriBidiPropertyBlockLevel8_0048, /* 20B8..20BF */
-#define FriBidiPropertyBlockLevel7_20C0 (FriBidiPropertyBlockLevel7 + 0x12C)
+#define FriBidiPropertyBlockLevel7_20C0 (FriBidiPropertyBlockLevel7 + 0x138)
FriBidiPropertyBlockLevel8_0048, /* 20C0..20C7 */
FriBidiPropertyBlockLevel8_0048, /* 20C8..20CF */
FriBidiPropertyBlockLevel8_0300, /* 20D0..20D7 */
FriBidiPropertyBlockLevel8_0300, /* 20D8..20DF */
-#define FriBidiPropertyBlockLevel7_20E0 (FriBidiPropertyBlockLevel7 + 0x130)
+#define FriBidiPropertyBlockLevel7_20E0 (FriBidiPropertyBlockLevel7 + 0x13C)
- FriBidiPropertyBlockLevel8_17D0, /* 20E0..20E7 */
- FriBidiPropertyBlockLevel8_0048, /* 20E8..20EF */
+ FriBidiPropertyBlockLevel8_0300, /* 20E0..20E7 */
+ FriBidiPropertyBlockLevel8_20E8, /* 20E8..20EF */
FriBidiPropertyBlockLevel8_0048, /* 20F0..20F7 */
FriBidiPropertyBlockLevel8_0048, /* 20F8..20FF */
-#define FriBidiPropertyBlockLevel7_2100 (FriBidiPropertyBlockLevel7 + 0x134)
+#define FriBidiPropertyBlockLevel7_2100 (FriBidiPropertyBlockLevel7 + 0x140)
FriBidiPropertyBlockLevel8_2100, /* 2100..2107 */
FriBidiPropertyBlockLevel8_1FC0, /* 2108..210F */
FriBidiPropertyBlockLevel8_2110, /* 2110..2117 */
FriBidiPropertyBlockLevel8_2118, /* 2118..211F */
-#define FriBidiPropertyBlockLevel7_2120 (FriBidiPropertyBlockLevel7 + 0x138)
+#define FriBidiPropertyBlockLevel7_2120 (FriBidiPropertyBlockLevel7 + 0x144)
FriBidiPropertyBlockLevel8_2120, /* 2120..2127 */
FriBidiPropertyBlockLevel8_2128, /* 2128..212F */
FriBidiPropertyBlockLevel8_0588, /* 2130..2137 */
FriBidiPropertyBlockLevel8_0588, /* 2138..213F */
-#define FriBidiPropertyBlockLevel7_2140 (FriBidiPropertyBlockLevel7 + 0x13C)
+#define FriBidiPropertyBlockLevel7_2140 (FriBidiPropertyBlockLevel7 + 0x148)
- FriBidiPropertyBlockLevel8_0048, /* 2140..2147 */
- FriBidiPropertyBlockLevel8_0048, /* 2148..214F */
+ FriBidiPropertyBlockLevel8_2140, /* 2140..2147 */
+ FriBidiPropertyBlockLevel8_2148, /* 2148..214F */
FriBidiPropertyBlockLevel8_0058, /* 2150..2157 */
FriBidiPropertyBlockLevel8_02C8, /* 2158..215F */
-#define FriBidiPropertyBlockLevel7_2180 (FriBidiPropertyBlockLevel7 + 0x140)
+#define FriBidiPropertyBlockLevel7_2180 (FriBidiPropertyBlockLevel7 + 0x14C)
FriBidiPropertyBlockLevel8_0048, /* 2180..2187 */
FriBidiPropertyBlockLevel8_0048, /* 2188..218F */
FriBidiPropertyBlockLevel8_02C8, /* 2190..2197 */
FriBidiPropertyBlockLevel8_02C8, /* 2198..219F */
-#define FriBidiPropertyBlockLevel7_21A0 (FriBidiPropertyBlockLevel7 + 0x144)
+#define FriBidiPropertyBlockLevel7_21A0 (FriBidiPropertyBlockLevel7 + 0x150)
FriBidiPropertyBlockLevel8_02C8, /* 21A0..21A7 */
FriBidiPropertyBlockLevel8_02C8, /* 21A8..21AF */
FriBidiPropertyBlockLevel8_02C8, /* 21B0..21B7 */
FriBidiPropertyBlockLevel8_02C8, /* 21B8..21BF */
-#define FriBidiPropertyBlockLevel7_21E0 (FriBidiPropertyBlockLevel7 + 0x148)
-
- FriBidiPropertyBlockLevel8_02C8, /* 21E0..21E7 */
- FriBidiPropertyBlockLevel8_02C8, /* 21E8..21EF */
- FriBidiPropertyBlockLevel8_21F0, /* 21F0..21F7 */
- FriBidiPropertyBlockLevel8_0048, /* 21F8..21FF */
-
-#define FriBidiPropertyBlockLevel7_2200 (FriBidiPropertyBlockLevel7 + 0x14C)
+#define FriBidiPropertyBlockLevel7_2200 (FriBidiPropertyBlockLevel7 + 0x154)
FriBidiPropertyBlockLevel8_02C8, /* 2200..2207 */
FriBidiPropertyBlockLevel8_02C8, /* 2208..220F */
FriBidiPropertyBlockLevel8_2210, /* 2210..2217 */
FriBidiPropertyBlockLevel8_02C8, /* 2218..221F */
-#define FriBidiPropertyBlockLevel7_22E0 (FriBidiPropertyBlockLevel7 + 0x150)
-
- FriBidiPropertyBlockLevel8_02C8, /* 22E0..22E7 */
- FriBidiPropertyBlockLevel8_02C8, /* 22E8..22EF */
- FriBidiPropertyBlockLevel8_1FC0, /* 22F0..22F7 */
- FriBidiPropertyBlockLevel8_0048, /* 22F8..22FF */
-
-#define FriBidiPropertyBlockLevel7_2320 (FriBidiPropertyBlockLevel7 + 0x154)
+#define FriBidiPropertyBlockLevel7_2320 (FriBidiPropertyBlockLevel7 + 0x158)
FriBidiPropertyBlockLevel8_02C8, /* 2320..2327 */
FriBidiPropertyBlockLevel8_02C8, /* 2328..232F */
FriBidiPropertyBlockLevel8_02E8, /* 2330..2337 */
FriBidiPropertyBlockLevel8_0048, /* 2338..233F */
-#define FriBidiPropertyBlockLevel7_2360 (FriBidiPropertyBlockLevel7 + 0x158)
+#define FriBidiPropertyBlockLevel7_2360 (FriBidiPropertyBlockLevel7 + 0x15C)
FriBidiPropertyBlockLevel8_0048, /* 2360..2367 */
FriBidiPropertyBlockLevel8_0048, /* 2368..236F */
FriBidiPropertyBlockLevel8_0048, /* 2370..2377 */
- FriBidiPropertyBlockLevel8_2378, /* 2378..237F */
+ FriBidiPropertyBlockLevel8_0058, /* 2378..237F */
-#define FriBidiPropertyBlockLevel7_2380 (FriBidiPropertyBlockLevel7 + 0x15C)
+#define FriBidiPropertyBlockLevel7_2380 (FriBidiPropertyBlockLevel7 + 0x160)
FriBidiPropertyBlockLevel8_02C8, /* 2380..2387 */
FriBidiPropertyBlockLevel8_02C8, /* 2388..238F */
FriBidiPropertyBlockLevel8_2390, /* 2390..2397 */
- FriBidiPropertyBlockLevel8_2398, /* 2398..239F */
+ FriBidiPropertyBlockLevel8_02C8, /* 2398..239F */
+
+#define FriBidiPropertyBlockLevel7_23C0 (FriBidiPropertyBlockLevel7 + 0x164)
-#define FriBidiPropertyBlockLevel7_2420 (FriBidiPropertyBlockLevel7 + 0x160)
+ FriBidiPropertyBlockLevel8_02C8, /* 23C0..23C7 */
+ FriBidiPropertyBlockLevel8_23C8, /* 23C8..23CF */
+ FriBidiPropertyBlockLevel8_0048, /* 23D0..23D7 */
+ FriBidiPropertyBlockLevel8_0048, /* 23D8..23DF */
- FriBidiPropertyBlockLevel8_2040, /* 2420..2427 */
+#define FriBidiPropertyBlockLevel7_2420 (FriBidiPropertyBlockLevel7 + 0x168)
+
+ FriBidiPropertyBlockLevel8_23C8, /* 2420..2427 */
FriBidiPropertyBlockLevel8_0048, /* 2428..242F */
FriBidiPropertyBlockLevel8_0048, /* 2430..2437 */
FriBidiPropertyBlockLevel8_0048, /* 2438..243F */
-#define FriBidiPropertyBlockLevel7_2440 (FriBidiPropertyBlockLevel7 + 0x164)
+#define FriBidiPropertyBlockLevel7_2440 (FriBidiPropertyBlockLevel7 + 0x16C)
FriBidiPropertyBlockLevel8_02C8, /* 2440..2447 */
- FriBidiPropertyBlockLevel8_2398, /* 2448..244F */
+ FriBidiPropertyBlockLevel8_2448, /* 2448..244F */
FriBidiPropertyBlockLevel8_0048, /* 2450..2457 */
FriBidiPropertyBlockLevel8_0048, /* 2458..245F */
-#define FriBidiPropertyBlockLevel7_2460 (FriBidiPropertyBlockLevel7 + 0x168)
+#define FriBidiPropertyBlockLevel7_2460 (FriBidiPropertyBlockLevel7 + 0x170)
FriBidiPropertyBlockLevel8_0030, /* 2460..2467 */
FriBidiPropertyBlockLevel8_0030, /* 2468..246F */
FriBidiPropertyBlockLevel8_0030, /* 2470..2477 */
FriBidiPropertyBlockLevel8_0030, /* 2478..247F */
-#define FriBidiPropertyBlockLevel7_2480 (FriBidiPropertyBlockLevel7 + 0x16C)
+#define FriBidiPropertyBlockLevel7_2480 (FriBidiPropertyBlockLevel7 + 0x174)
FriBidiPropertyBlockLevel8_0030, /* 2480..2487 */
FriBidiPropertyBlockLevel8_0030, /* 2488..248F */
FriBidiPropertyBlockLevel8_0030, /* 2490..2497 */
FriBidiPropertyBlockLevel8_2498, /* 2498..249F */
-#define FriBidiPropertyBlockLevel7_24E0 (FriBidiPropertyBlockLevel7 + 0x170)
+#define FriBidiPropertyBlockLevel7_24E0 (FriBidiPropertyBlockLevel7 + 0x178)
FriBidiPropertyBlockLevel8_0048, /* 24E0..24E7 */
FriBidiPropertyBlockLevel8_24E8, /* 24E8..24EF */
- FriBidiPropertyBlockLevel8_0048, /* 24F0..24F7 */
- FriBidiPropertyBlockLevel8_0048, /* 24F8..24FF */
-
-#define FriBidiPropertyBlockLevel7_25E0 (FriBidiPropertyBlockLevel7 + 0x174)
-
- FriBidiPropertyBlockLevel8_02C8, /* 25E0..25E7 */
- FriBidiPropertyBlockLevel8_02C8, /* 25E8..25EF */
- FriBidiPropertyBlockLevel8_02C8, /* 25F0..25F7 */
- FriBidiPropertyBlockLevel8_0048, /* 25F8..25FF */
+ FriBidiPropertyBlockLevel8_02C8, /* 24F0..24F7 */
+ FriBidiPropertyBlockLevel8_23C8, /* 24F8..24FF */
-#define FriBidiPropertyBlockLevel7_2600 (FriBidiPropertyBlockLevel7 + 0x178)
+#define FriBidiPropertyBlockLevel7_2600 (FriBidiPropertyBlockLevel7 + 0x17C)
FriBidiPropertyBlockLevel8_02C8, /* 2600..2607 */
FriBidiPropertyBlockLevel8_02C8, /* 2608..260F */
- FriBidiPropertyBlockLevel8_21F0, /* 2610..2617 */
+ FriBidiPropertyBlockLevel8_2610, /* 2610..2617 */
FriBidiPropertyBlockLevel8_2618, /* 2618..261F */
-#define FriBidiPropertyBlockLevel7_2700 (FriBidiPropertyBlockLevel7 + 0x17C)
+#define FriBidiPropertyBlockLevel7_2660 (FriBidiPropertyBlockLevel7 + 0x180)
+
+ FriBidiPropertyBlockLevel8_02C8, /* 2660..2667 */
+ FriBidiPropertyBlockLevel8_02C8, /* 2668..266F */
+ FriBidiPropertyBlockLevel8_02C8, /* 2670..2677 */
+ FriBidiPropertyBlockLevel8_02E8, /* 2678..267F */
+
+#define FriBidiPropertyBlockLevel7_2680 (FriBidiPropertyBlockLevel7 + 0x184)
+
+ FriBidiPropertyBlockLevel8_02C8, /* 2680..2687 */
+ FriBidiPropertyBlockLevel8_1FC0, /* 2688..268F */
+ FriBidiPropertyBlockLevel8_0048, /* 2690..2697 */
+ FriBidiPropertyBlockLevel8_0048, /* 2698..269F */
+
+#define FriBidiPropertyBlockLevel7_2700 (FriBidiPropertyBlockLevel7 + 0x188)
FriBidiPropertyBlockLevel8_2700, /* 2700..2707 */
FriBidiPropertyBlockLevel8_2708, /* 2708..270F */
FriBidiPropertyBlockLevel8_02C8, /* 2710..2717 */
FriBidiPropertyBlockLevel8_02C8, /* 2718..271F */
-#define FriBidiPropertyBlockLevel7_2720 (FriBidiPropertyBlockLevel7 + 0x180)
+#define FriBidiPropertyBlockLevel7_2720 (FriBidiPropertyBlockLevel7 + 0x18C)
FriBidiPropertyBlockLevel8_02C8, /* 2720..2727 */
FriBidiPropertyBlockLevel8_2618, /* 2728..272F */
FriBidiPropertyBlockLevel8_02C8, /* 2730..2737 */
FriBidiPropertyBlockLevel8_02C8, /* 2738..273F */
-#define FriBidiPropertyBlockLevel7_2740 (FriBidiPropertyBlockLevel7 + 0x184)
+#define FriBidiPropertyBlockLevel7_2740 (FriBidiPropertyBlockLevel7 + 0x190)
FriBidiPropertyBlockLevel8_02C8, /* 2740..2747 */
FriBidiPropertyBlockLevel8_2120, /* 2748..274F */
FriBidiPropertyBlockLevel8_2750, /* 2750..2757 */
- FriBidiPropertyBlockLevel8_2040, /* 2758..275F */
+ FriBidiPropertyBlockLevel8_23C8, /* 2758..275F */
-#define FriBidiPropertyBlockLevel7_2760 (FriBidiPropertyBlockLevel7 + 0x188)
+#define FriBidiPropertyBlockLevel7_2760 (FriBidiPropertyBlockLevel7 + 0x194)
FriBidiPropertyBlockLevel8_2618, /* 2760..2767 */
- FriBidiPropertyBlockLevel8_0048, /* 2768..276F */
- FriBidiPropertyBlockLevel8_2770, /* 2770..2777 */
+ FriBidiPropertyBlockLevel8_02C8, /* 2768..276F */
+ FriBidiPropertyBlockLevel8_02C8, /* 2770..2777 */
FriBidiPropertyBlockLevel8_02C8, /* 2778..277F */
-#define FriBidiPropertyBlockLevel7_2780 (FriBidiPropertyBlockLevel7 + 0x18C)
+#define FriBidiPropertyBlockLevel7_2780 (FriBidiPropertyBlockLevel7 + 0x198)
FriBidiPropertyBlockLevel8_02C8, /* 2780..2787 */
FriBidiPropertyBlockLevel8_02C8, /* 2788..278F */
- FriBidiPropertyBlockLevel8_2790, /* 2790..2797 */
+ FriBidiPropertyBlockLevel8_2140, /* 2790..2797 */
FriBidiPropertyBlockLevel8_02C8, /* 2798..279F */
-#define FriBidiPropertyBlockLevel7_27A0 (FriBidiPropertyBlockLevel7 + 0x190)
+#define FriBidiPropertyBlockLevel7_27A0 (FriBidiPropertyBlockLevel7 + 0x19C)
FriBidiPropertyBlockLevel8_02C8, /* 27A0..27A7 */
FriBidiPropertyBlockLevel8_02C8, /* 27A8..27AF */
FriBidiPropertyBlockLevel8_2618, /* 27B0..27B7 */
- FriBidiPropertyBlockLevel8_2040, /* 27B8..27BF */
+ FriBidiPropertyBlockLevel8_23C8, /* 27B8..27BF */
+
+#define FriBidiPropertyBlockLevel7_27E0 (FriBidiPropertyBlockLevel7 + 0x1A0)
+
+ FriBidiPropertyBlockLevel8_02C8, /* 27E0..27E7 */
+ FriBidiPropertyBlockLevel8_27E8, /* 27E8..27EF */
+ FriBidiPropertyBlockLevel8_02C8, /* 27F0..27F7 */
+ FriBidiPropertyBlockLevel8_02C8, /* 27F8..27FF */
-#define FriBidiPropertyBlockLevel7_2E80 (FriBidiPropertyBlockLevel7 + 0x194)
+#define FriBidiPropertyBlockLevel7_2E80 (FriBidiPropertyBlockLevel7 + 0x1A4)
FriBidiPropertyBlockLevel8_02C8, /* 2E80..2E87 */
FriBidiPropertyBlockLevel8_02C8, /* 2E88..2E8F */
FriBidiPropertyBlockLevel8_02C8, /* 2E90..2E97 */
FriBidiPropertyBlockLevel8_00A8, /* 2E98..2E9F */
-#define FriBidiPropertyBlockLevel7_2FE0 (FriBidiPropertyBlockLevel7 + 0x198)
+#define FriBidiPropertyBlockLevel7_2EE0 (FriBidiPropertyBlockLevel7 + 0x1A8)
+
+ FriBidiPropertyBlockLevel8_02C8, /* 2EE0..2EE7 */
+ FriBidiPropertyBlockLevel8_02C8, /* 2EE8..2EEF */
+ FriBidiPropertyBlockLevel8_27E8, /* 2EF0..2EF7 */
+ FriBidiPropertyBlockLevel8_0048, /* 2EF8..2EFF */
+
+#define FriBidiPropertyBlockLevel7_2FE0 (FriBidiPropertyBlockLevel7 + 0x1AC)
FriBidiPropertyBlockLevel8_0048, /* 2FE0..2FE7 */
FriBidiPropertyBlockLevel8_0048, /* 2FE8..2FEF */
FriBidiPropertyBlockLevel8_02C8, /* 2FF0..2FF7 */
- FriBidiPropertyBlockLevel8_21F0, /* 2FF8..2FFF */
+ FriBidiPropertyBlockLevel8_27E8, /* 2FF8..2FFF */
-#define FriBidiPropertyBlockLevel7_3000 (FriBidiPropertyBlockLevel7 + 0x19C)
+#define FriBidiPropertyBlockLevel7_3000 (FriBidiPropertyBlockLevel7 + 0x1B0)
FriBidiPropertyBlockLevel8_3000, /* 3000..3007 */
FriBidiPropertyBlockLevel8_02C8, /* 3008..300F */
FriBidiPropertyBlockLevel8_02C8, /* 3010..3017 */
FriBidiPropertyBlockLevel8_02C8, /* 3018..301F */
-#define FriBidiPropertyBlockLevel7_3020 (FriBidiPropertyBlockLevel7 + 0x1A0)
+#define FriBidiPropertyBlockLevel7_3020 (FriBidiPropertyBlockLevel7 + 0x1B4)
FriBidiPropertyBlockLevel8_0040, /* 3020..3027 */
FriBidiPropertyBlockLevel8_3028, /* 3028..302F */
FriBidiPropertyBlockLevel8_2118, /* 3030..3037 */
- FriBidiPropertyBlockLevel8_2770, /* 3038..303F */
+ FriBidiPropertyBlockLevel8_02E0, /* 3038..303F */
-#define FriBidiPropertyBlockLevel7_3080 (FriBidiPropertyBlockLevel7 + 0x1A4)
+#define FriBidiPropertyBlockLevel7_3080 (FriBidiPropertyBlockLevel7 + 0x1B8)
FriBidiPropertyBlockLevel8_0048, /* 3080..3087 */
FriBidiPropertyBlockLevel8_0048, /* 3088..308F */
FriBidiPropertyBlockLevel8_0048, /* 3090..3097 */
FriBidiPropertyBlockLevel8_3098, /* 3098..309F */
-#define FriBidiPropertyBlockLevel7_30E0 (FriBidiPropertyBlockLevel7 + 0x1A8)
+#define FriBidiPropertyBlockLevel7_30A0 (FriBidiPropertyBlockLevel7 + 0x1BC)
+
+ FriBidiPropertyBlockLevel8_0040, /* 30A0..30A7 */
+ FriBidiPropertyBlockLevel8_0048, /* 30A8..30AF */
+ FriBidiPropertyBlockLevel8_0048, /* 30B0..30B7 */
+ FriBidiPropertyBlockLevel8_0048, /* 30B8..30BF */
+
+#define FriBidiPropertyBlockLevel7_30E0 (FriBidiPropertyBlockLevel7 + 0x1C0)
FriBidiPropertyBlockLevel8_0048, /* 30E0..30E7 */
FriBidiPropertyBlockLevel8_0048, /* 30E8..30EF */
FriBidiPropertyBlockLevel8_0048, /* 30F0..30F7 */
FriBidiPropertyBlockLevel8_30F8, /* 30F8..30FF */
-#define FriBidiPropertyBlockLevel7_A4A0 (FriBidiPropertyBlockLevel7 + 0x1AC)
-
- FriBidiPropertyBlockLevel8_2708, /* A4A0..A4A7 */
- FriBidiPropertyBlockLevel8_02C8, /* A4A8..A4AF */
- FriBidiPropertyBlockLevel8_A4B0, /* A4B0..A4B7 */
- FriBidiPropertyBlockLevel8_02C8, /* A4B8..A4BF */
+#define FriBidiPropertyBlockLevel7_3240 (FriBidiPropertyBlockLevel7 + 0x1C4)
-#define FriBidiPropertyBlockLevel7_A4C0 (FriBidiPropertyBlockLevel7 + 0x1B0)
+ FriBidiPropertyBlockLevel8_0048, /* 3240..3247 */
+ FriBidiPropertyBlockLevel8_0048, /* 3248..324F */
+ FriBidiPropertyBlockLevel8_2618, /* 3250..3257 */
+ FriBidiPropertyBlockLevel8_02C8, /* 3258..325F */
- FriBidiPropertyBlockLevel8_A4C0, /* A4C0..A4C7 */
- FriBidiPropertyBlockLevel8_0048, /* A4C8..A4CF */
- FriBidiPropertyBlockLevel8_0048, /* A4D0..A4D7 */
- FriBidiPropertyBlockLevel8_0048, /* A4D8..A4DF */
-
-#define FriBidiPropertyBlockLevel7_FB00 (FriBidiPropertyBlockLevel7 + 0x1B4)
+#define FriBidiPropertyBlockLevel7_FB00 (FriBidiPropertyBlockLevel7 + 0x1C8)
FriBidiPropertyBlockLevel8_0048, /* FB00..FB07 */
FriBidiPropertyBlockLevel8_0048, /* FB08..FB0F */
FriBidiPropertyBlockLevel8_0048, /* FB10..FB17 */
FriBidiPropertyBlockLevel8_FB18, /* FB18..FB1F */
-#define FriBidiPropertyBlockLevel7_FB20 (FriBidiPropertyBlockLevel7 + 0x1B8)
+#define FriBidiPropertyBlockLevel7_FB20 (FriBidiPropertyBlockLevel7 + 0x1CC)
FriBidiPropertyBlockLevel8_05C8, /* FB20..FB27 */
FriBidiPropertyBlockLevel8_FB28, /* FB28..FB2F */
FriBidiPropertyBlockLevel8_05C8, /* FB30..FB37 */
FriBidiPropertyBlockLevel8_05C8, /* FB38..FB3F */
-#define FriBidiPropertyBlockLevel7_FB40 (FriBidiPropertyBlockLevel7 + 0x1BC)
+#define FriBidiPropertyBlockLevel7_FB40 (FriBidiPropertyBlockLevel7 + 0x1D0)
FriBidiPropertyBlockLevel8_05C8, /* FB40..FB47 */
FriBidiPropertyBlockLevel8_05C8, /* FB48..FB4F */
FriBidiPropertyBlockLevel8_0600, /* FB50..FB57 */
FriBidiPropertyBlockLevel8_0600, /* FB58..FB5F */
-#define FriBidiPropertyBlockLevel7_FD20 (FriBidiPropertyBlockLevel7 + 0x1C0)
+#define FriBidiPropertyBlockLevel7_FD20 (FriBidiPropertyBlockLevel7 + 0x1D4)
FriBidiPropertyBlockLevel8_0600, /* FD20..FD27 */
FriBidiPropertyBlockLevel8_0600, /* FD28..FD2F */
FriBidiPropertyBlockLevel8_0600, /* FD30..FD37 */
FriBidiPropertyBlockLevel8_FD38, /* FD38..FD3F */
-#define FriBidiPropertyBlockLevel7_FE20 (FriBidiPropertyBlockLevel7 + 0x1C4)
+#define FriBidiPropertyBlockLevel7_FE20 (FriBidiPropertyBlockLevel7 + 0x1D8)
FriBidiPropertyBlockLevel8_17D0, /* FE20..FE27 */
FriBidiPropertyBlockLevel8_0048, /* FE28..FE2F */
FriBidiPropertyBlockLevel8_02C8, /* FE30..FE37 */
FriBidiPropertyBlockLevel8_02C8, /* FE38..FE3F */
-#define FriBidiPropertyBlockLevel7_FE40 (FriBidiPropertyBlockLevel7 + 0x1C8)
+#define FriBidiPropertyBlockLevel7_FE40 (FriBidiPropertyBlockLevel7 + 0x1DC)
- FriBidiPropertyBlockLevel8_2790, /* FE40..FE47 */
+ FriBidiPropertyBlockLevel8_23C8, /* FE40..FE47 */
FriBidiPropertyBlockLevel8_2618, /* FE48..FE4F */
FriBidiPropertyBlockLevel8_FE50, /* FE50..FE57 */
FriBidiPropertyBlockLevel8_FE58, /* FE58..FE5F */
-#define FriBidiPropertyBlockLevel7_FE60 (FriBidiPropertyBlockLevel7 + 0x1CC)
+#define FriBidiPropertyBlockLevel7_FE60 (FriBidiPropertyBlockLevel7 + 0x1E0)
FriBidiPropertyBlockLevel8_FE60, /* FE60..FE67 */
FriBidiPropertyBlockLevel8_FE68, /* FE68..FE6F */
FriBidiPropertyBlockLevel8_0600, /* FE70..FE77 */
FriBidiPropertyBlockLevel8_0600, /* FE78..FE7F */
-#define FriBidiPropertyBlockLevel7_FEE0 (FriBidiPropertyBlockLevel7 + 0x1D0)
+#define FriBidiPropertyBlockLevel7_FEE0 (FriBidiPropertyBlockLevel7 + 0x1E4)
FriBidiPropertyBlockLevel8_0600, /* FEE0..FEE7 */
FriBidiPropertyBlockLevel8_0600, /* FEE8..FEEF */
FriBidiPropertyBlockLevel8_0600, /* FEF0..FEF7 */
FriBidiPropertyBlockLevel8_0708, /* FEF8..FEFF */
-#define FriBidiPropertyBlockLevel7_FF00 (FriBidiPropertyBlockLevel7 + 0x1D4)
+#define FriBidiPropertyBlockLevel7_FF00 (FriBidiPropertyBlockLevel7 + 0x1E8)
FriBidiPropertyBlockLevel8_FF00, /* FF00..FF07 */
FriBidiPropertyBlockLevel8_0028, /* FF08..FF0F */
FriBidiPropertyBlockLevel8_0030, /* FF10..FF17 */
FriBidiPropertyBlockLevel8_0038, /* FF18..FF1F */
-#define FriBidiPropertyBlockLevel7_FF40 (FriBidiPropertyBlockLevel7 + 0x1D8)
-
- FriBidiPropertyBlockLevel8_0040, /* FF40..FF47 */
- FriBidiPropertyBlockLevel8_0048, /* FF48..FF4F */
- FriBidiPropertyBlockLevel8_0048, /* FF50..FF57 */
- FriBidiPropertyBlockLevel8_FF58, /* FF58..FF5F */
-
-#define FriBidiPropertyBlockLevel7_FF60 (FriBidiPropertyBlockLevel7 + 0x1DC)
+#define FriBidiPropertyBlockLevel7_FF60 (FriBidiPropertyBlockLevel7 + 0x1EC)
- FriBidiPropertyBlockLevel8_FF60, /* FF60..FF67 */
+ FriBidiPropertyBlockLevel8_02E8, /* FF60..FF67 */
FriBidiPropertyBlockLevel8_0048, /* FF68..FF6F */
FriBidiPropertyBlockLevel8_0048, /* FF70..FF77 */
FriBidiPropertyBlockLevel8_0048, /* FF78..FF7F */
-#define FriBidiPropertyBlockLevel7_FFE0 (FriBidiPropertyBlockLevel7 + 0x1E0)
+#define FriBidiPropertyBlockLevel7_FFE0 (FriBidiPropertyBlockLevel7 + 0x1F0)
FriBidiPropertyBlockLevel8_FFE0, /* FFE0..FFE7 */
- FriBidiPropertyBlockLevel8_2040, /* FFE8..FFEF */
+ FriBidiPropertyBlockLevel8_23C8, /* FFE8..FFEF */
FriBidiPropertyBlockLevel8_0048, /* FFF0..FFF7 */
FriBidiPropertyBlockLevel8_FFF8, /* FFF8..FFFF */
-#define FriBidiPropertyBlockLevel7_1D160 (FriBidiPropertyBlockLevel7 + 0x1E4)
+#define FriBidiPropertyBlockLevel7_1D160 (FriBidiPropertyBlockLevel7 + 0x1F4)
FriBidiPropertyBlockLevel8_0CB8, /* 1D160..1D167 */
FriBidiPropertyBlockLevel8_0488, /* 1D168..1D16F */
FriBidiPropertyBlockLevel8_1D170, /* 1D170..1D177 */
FriBidiPropertyBlockLevel8_1D178, /* 1D178..1D17F */
-#define FriBidiPropertyBlockLevel7_1D180 (FriBidiPropertyBlockLevel7 + 0x1E8)
+#define FriBidiPropertyBlockLevel7_1D180 (FriBidiPropertyBlockLevel7 + 0x1F8)
FriBidiPropertyBlockLevel8_1D180, /* 1D180..1D187 */
FriBidiPropertyBlockLevel8_17D0, /* 1D188..1D18F */
FriBidiPropertyBlockLevel8_0048, /* 1D190..1D197 */
FriBidiPropertyBlockLevel8_0048, /* 1D198..1D19F */
-#define FriBidiPropertyBlockLevel7_1D1A0 (FriBidiPropertyBlockLevel7 + 0x1EC)
+#define FriBidiPropertyBlockLevel7_1D1A0 (FriBidiPropertyBlockLevel7 + 0x1FC)
FriBidiPropertyBlockLevel8_0048, /* 1D1A0..1D1A7 */
FriBidiPropertyBlockLevel8_1D1A8, /* 1D1A8..1D1AF */
FriBidiPropertyBlockLevel8_0048, /* 1D1B0..1D1B7 */
FriBidiPropertyBlockLevel8_0048, /* 1D1B8..1D1BF */
-#define FriBidiPropertyBlockLevel7_1D7C0 (FriBidiPropertyBlockLevel7 + 0x1F0)
+#define FriBidiPropertyBlockLevel7_1D7C0 (FriBidiPropertyBlockLevel7 + 0x200)
FriBidiPropertyBlockLevel8_0048, /* 1D7C0..1D7C7 */
FriBidiPropertyBlockLevel8_1D7C8, /* 1D7C8..1D7CF */
FriBidiPropertyBlockLevel8_0030, /* 1D7D0..1D7D7 */
FriBidiPropertyBlockLevel8_0030, /* 1D7D8..1D7DF */
-#define FriBidiPropertyBlockLevel7_E0000 (FriBidiPropertyBlockLevel7 + 0x1F4)
+#define FriBidiPropertyBlockLevel7_E0000 (FriBidiPropertyBlockLevel7 + 0x204)
FriBidiPropertyBlockLevel8_E0000, /* E0000..E0007 */
FriBidiPropertyBlockLevel8_0048, /* E0008..E000F */
FriBidiPropertyBlockLevel8_0048, /* E0010..E0017 */
FriBidiPropertyBlockLevel8_0048, /* E0018..E001F */
-#define FriBidiPropertyBlockLevel7_E0020 (FriBidiPropertyBlockLevel7 + 0x1F8)
+#define FriBidiPropertyBlockLevel7_E0020 (FriBidiPropertyBlockLevel7 + 0x208)
FriBidiPropertyBlockLevel8_0000, /* E0020..E0027 */
FriBidiPropertyBlockLevel8_0000, /* E0028..E002F */
@@ -1510,7 +1546,7 @@ static const FriBidiPropCharType *FriBidiPropertyBlockLevel7[4*127] = {
FriBidiPropertyBlockLevel8_0000, /* E0038..E003F */
};
-static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
+static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*65] = {
#define FriBidiPropertyBlockLevel6_0000 (FriBidiPropertyBlockLevel6 + 0x0)
@@ -1552,7 +1588,7 @@ static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
FriBidiPropertyBlockLevel7_0380, /* 0380..039F */
FriBidiPropertyBlockLevel7_0100, /* 03A0..03BF */
FriBidiPropertyBlockLevel7_0100, /* 03C0..03DF */
- FriBidiPropertyBlockLevel7_0100, /* 03E0..03FF */
+ FriBidiPropertyBlockLevel7_03E0, /* 03E0..03FF */
#define FriBidiPropertyBlockLevel6_0480 (FriBidiPropertyBlockLevel6 + 0x18)
@@ -1708,124 +1744,124 @@ static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
FriBidiPropertyBlockLevel7_0100, /* 16C0..16DF */
FriBidiPropertyBlockLevel7_0100, /* 16E0..16FF */
-#define FriBidiPropertyBlockLevel6_1780 (FriBidiPropertyBlockLevel6 + 0x70)
+#define FriBidiPropertyBlockLevel6_1700 (FriBidiPropertyBlockLevel6 + 0x70)
+
+ FriBidiPropertyBlockLevel7_1700, /* 1700..171F */
+ FriBidiPropertyBlockLevel7_1700, /* 1720..173F */
+ FriBidiPropertyBlockLevel7_1740, /* 1740..175F */
+ FriBidiPropertyBlockLevel7_1740, /* 1760..177F */
+
+#define FriBidiPropertyBlockLevel6_1780 (FriBidiPropertyBlockLevel6 + 0x74)
FriBidiPropertyBlockLevel7_0100, /* 1780..179F */
FriBidiPropertyBlockLevel7_17A0, /* 17A0..17BF */
FriBidiPropertyBlockLevel7_17C0, /* 17C0..17DF */
FriBidiPropertyBlockLevel7_0100, /* 17E0..17FF */
-#define FriBidiPropertyBlockLevel6_1800 (FriBidiPropertyBlockLevel6 + 0x74)
+#define FriBidiPropertyBlockLevel6_1800 (FriBidiPropertyBlockLevel6 + 0x78)
FriBidiPropertyBlockLevel7_1800, /* 1800..181F */
FriBidiPropertyBlockLevel7_0100, /* 1820..183F */
FriBidiPropertyBlockLevel7_0100, /* 1840..185F */
FriBidiPropertyBlockLevel7_0100, /* 1860..187F */
-#define FriBidiPropertyBlockLevel6_1880 (FriBidiPropertyBlockLevel6 + 0x78)
+#define FriBidiPropertyBlockLevel6_1880 (FriBidiPropertyBlockLevel6 + 0x7C)
FriBidiPropertyBlockLevel7_0100, /* 1880..189F */
FriBidiPropertyBlockLevel7_18A0, /* 18A0..18BF */
FriBidiPropertyBlockLevel7_0100, /* 18C0..18DF */
FriBidiPropertyBlockLevel7_0100, /* 18E0..18FF */
-#define FriBidiPropertyBlockLevel6_1F80 (FriBidiPropertyBlockLevel6 + 0x7C)
+#define FriBidiPropertyBlockLevel6_1F80 (FriBidiPropertyBlockLevel6 + 0x80)
FriBidiPropertyBlockLevel7_0100, /* 1F80..1F9F */
FriBidiPropertyBlockLevel7_1FA0, /* 1FA0..1FBF */
FriBidiPropertyBlockLevel7_1FC0, /* 1FC0..1FDF */
FriBidiPropertyBlockLevel7_1FE0, /* 1FE0..1FFF */
-#define FriBidiPropertyBlockLevel6_2000 (FriBidiPropertyBlockLevel6 + 0x80)
+#define FriBidiPropertyBlockLevel6_2000 (FriBidiPropertyBlockLevel6 + 0x84)
FriBidiPropertyBlockLevel7_2000, /* 2000..201F */
FriBidiPropertyBlockLevel7_2020, /* 2020..203F */
FriBidiPropertyBlockLevel7_2040, /* 2040..205F */
FriBidiPropertyBlockLevel7_2060, /* 2060..207F */
-#define FriBidiPropertyBlockLevel6_2080 (FriBidiPropertyBlockLevel6 + 0x84)
+#define FriBidiPropertyBlockLevel6_2080 (FriBidiPropertyBlockLevel6 + 0x88)
FriBidiPropertyBlockLevel7_2080, /* 2080..209F */
FriBidiPropertyBlockLevel7_20A0, /* 20A0..20BF */
FriBidiPropertyBlockLevel7_20C0, /* 20C0..20DF */
FriBidiPropertyBlockLevel7_20E0, /* 20E0..20FF */
-#define FriBidiPropertyBlockLevel6_2100 (FriBidiPropertyBlockLevel6 + 0x88)
+#define FriBidiPropertyBlockLevel6_2100 (FriBidiPropertyBlockLevel6 + 0x8C)
FriBidiPropertyBlockLevel7_2100, /* 2100..211F */
FriBidiPropertyBlockLevel7_2120, /* 2120..213F */
FriBidiPropertyBlockLevel7_2140, /* 2140..215F */
FriBidiPropertyBlockLevel7_0100, /* 2160..217F */
-#define FriBidiPropertyBlockLevel6_2180 (FriBidiPropertyBlockLevel6 + 0x8C)
+#define FriBidiPropertyBlockLevel6_2180 (FriBidiPropertyBlockLevel6 + 0x90)
FriBidiPropertyBlockLevel7_2180, /* 2180..219F */
FriBidiPropertyBlockLevel7_21A0, /* 21A0..21BF */
FriBidiPropertyBlockLevel7_21A0, /* 21C0..21DF */
- FriBidiPropertyBlockLevel7_21E0, /* 21E0..21FF */
+ FriBidiPropertyBlockLevel7_21A0, /* 21E0..21FF */
-#define FriBidiPropertyBlockLevel6_2200 (FriBidiPropertyBlockLevel6 + 0x90)
+#define FriBidiPropertyBlockLevel6_2200 (FriBidiPropertyBlockLevel6 + 0x94)
FriBidiPropertyBlockLevel7_2200, /* 2200..221F */
FriBidiPropertyBlockLevel7_21A0, /* 2220..223F */
FriBidiPropertyBlockLevel7_21A0, /* 2240..225F */
FriBidiPropertyBlockLevel7_21A0, /* 2260..227F */
-#define FriBidiPropertyBlockLevel6_2280 (FriBidiPropertyBlockLevel6 + 0x94)
+#define FriBidiPropertyBlockLevel6_2280 (FriBidiPropertyBlockLevel6 + 0x98)
FriBidiPropertyBlockLevel7_21A0, /* 2280..229F */
FriBidiPropertyBlockLevel7_21A0, /* 22A0..22BF */
FriBidiPropertyBlockLevel7_21A0, /* 22C0..22DF */
- FriBidiPropertyBlockLevel7_22E0, /* 22E0..22FF */
+ FriBidiPropertyBlockLevel7_21A0, /* 22E0..22FF */
-#define FriBidiPropertyBlockLevel6_2300 (FriBidiPropertyBlockLevel6 + 0x98)
+#define FriBidiPropertyBlockLevel6_2300 (FriBidiPropertyBlockLevel6 + 0x9C)
FriBidiPropertyBlockLevel7_21A0, /* 2300..231F */
FriBidiPropertyBlockLevel7_2320, /* 2320..233F */
FriBidiPropertyBlockLevel7_0100, /* 2340..235F */
FriBidiPropertyBlockLevel7_2360, /* 2360..237F */
-#define FriBidiPropertyBlockLevel6_2380 (FriBidiPropertyBlockLevel6 + 0x9C)
+#define FriBidiPropertyBlockLevel6_2380 (FriBidiPropertyBlockLevel6 + 0xA0)
FriBidiPropertyBlockLevel7_2380, /* 2380..239F */
- FriBidiPropertyBlockLevel7_0100, /* 23A0..23BF */
- FriBidiPropertyBlockLevel7_0100, /* 23C0..23DF */
+ FriBidiPropertyBlockLevel7_21A0, /* 23A0..23BF */
+ FriBidiPropertyBlockLevel7_23C0, /* 23C0..23DF */
FriBidiPropertyBlockLevel7_0100, /* 23E0..23FF */
-#define FriBidiPropertyBlockLevel6_2400 (FriBidiPropertyBlockLevel6 + 0xA0)
+#define FriBidiPropertyBlockLevel6_2400 (FriBidiPropertyBlockLevel6 + 0xA4)
FriBidiPropertyBlockLevel7_21A0, /* 2400..241F */
FriBidiPropertyBlockLevel7_2420, /* 2420..243F */
FriBidiPropertyBlockLevel7_2440, /* 2440..245F */
FriBidiPropertyBlockLevel7_2460, /* 2460..247F */
-#define FriBidiPropertyBlockLevel6_2480 (FriBidiPropertyBlockLevel6 + 0xA4)
+#define FriBidiPropertyBlockLevel6_2480 (FriBidiPropertyBlockLevel6 + 0xA8)
FriBidiPropertyBlockLevel7_2480, /* 2480..249F */
FriBidiPropertyBlockLevel7_0100, /* 24A0..24BF */
FriBidiPropertyBlockLevel7_0100, /* 24C0..24DF */
FriBidiPropertyBlockLevel7_24E0, /* 24E0..24FF */
-#define FriBidiPropertyBlockLevel6_2500 (FriBidiPropertyBlockLevel6 + 0xA8)
-
- FriBidiPropertyBlockLevel7_21A0, /* 2500..251F */
- FriBidiPropertyBlockLevel7_21A0, /* 2520..253F */
- FriBidiPropertyBlockLevel7_21A0, /* 2540..255F */
- FriBidiPropertyBlockLevel7_21A0, /* 2560..257F */
-
-#define FriBidiPropertyBlockLevel6_2580 (FriBidiPropertyBlockLevel6 + 0xAC)
-
- FriBidiPropertyBlockLevel7_2320, /* 2580..259F */
- FriBidiPropertyBlockLevel7_21A0, /* 25A0..25BF */
- FriBidiPropertyBlockLevel7_21A0, /* 25C0..25DF */
- FriBidiPropertyBlockLevel7_25E0, /* 25E0..25FF */
-
-#define FriBidiPropertyBlockLevel6_2600 (FriBidiPropertyBlockLevel6 + 0xB0)
+#define FriBidiPropertyBlockLevel6_2600 (FriBidiPropertyBlockLevel6 + 0xAC)
FriBidiPropertyBlockLevel7_2600, /* 2600..261F */
FriBidiPropertyBlockLevel7_21A0, /* 2620..263F */
FriBidiPropertyBlockLevel7_21A0, /* 2640..265F */
- FriBidiPropertyBlockLevel7_22E0, /* 2660..267F */
+ FriBidiPropertyBlockLevel7_2660, /* 2660..267F */
+
+#define FriBidiPropertyBlockLevel6_2680 (FriBidiPropertyBlockLevel6 + 0xB0)
+
+ FriBidiPropertyBlockLevel7_2680, /* 2680..269F */
+ FriBidiPropertyBlockLevel7_0100, /* 26A0..26BF */
+ FriBidiPropertyBlockLevel7_0100, /* 26C0..26DF */
+ FriBidiPropertyBlockLevel7_0100, /* 26E0..26FF */
#define FriBidiPropertyBlockLevel6_2700 (FriBidiPropertyBlockLevel6 + 0xB4)
@@ -1838,15 +1874,15 @@ static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
FriBidiPropertyBlockLevel7_2780, /* 2780..279F */
FriBidiPropertyBlockLevel7_27A0, /* 27A0..27BF */
- FriBidiPropertyBlockLevel7_0100, /* 27C0..27DF */
- FriBidiPropertyBlockLevel7_0100, /* 27E0..27FF */
+ FriBidiPropertyBlockLevel7_2180, /* 27C0..27DF */
+ FriBidiPropertyBlockLevel7_27E0, /* 27E0..27FF */
#define FriBidiPropertyBlockLevel6_2E80 (FriBidiPropertyBlockLevel6 + 0xBC)
FriBidiPropertyBlockLevel7_2E80, /* 2E80..2E9F */
FriBidiPropertyBlockLevel7_21A0, /* 2EA0..2EBF */
FriBidiPropertyBlockLevel7_21A0, /* 2EC0..2EDF */
- FriBidiPropertyBlockLevel7_21E0, /* 2EE0..2EFF */
+ FriBidiPropertyBlockLevel7_2EE0, /* 2EE0..2EFF */
#define FriBidiPropertyBlockLevel6_2F80 (FriBidiPropertyBlockLevel6 + 0xC0)
@@ -1865,88 +1901,102 @@ static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
#define FriBidiPropertyBlockLevel6_3080 (FriBidiPropertyBlockLevel6 + 0xC8)
FriBidiPropertyBlockLevel7_3080, /* 3080..309F */
- FriBidiPropertyBlockLevel7_0100, /* 30A0..30BF */
+ FriBidiPropertyBlockLevel7_30A0, /* 30A0..30BF */
FriBidiPropertyBlockLevel7_0100, /* 30C0..30DF */
FriBidiPropertyBlockLevel7_30E0, /* 30E0..30FF */
-#define FriBidiPropertyBlockLevel6_A480 (FriBidiPropertyBlockLevel6 + 0xCC)
+#define FriBidiPropertyBlockLevel6_3200 (FriBidiPropertyBlockLevel6 + 0xCC)
+
+ FriBidiPropertyBlockLevel7_0100, /* 3200..321F */
+ FriBidiPropertyBlockLevel7_0100, /* 3220..323F */
+ FriBidiPropertyBlockLevel7_3240, /* 3240..325F */
+ FriBidiPropertyBlockLevel7_0100, /* 3260..327F */
+
+#define FriBidiPropertyBlockLevel6_3280 (FriBidiPropertyBlockLevel6 + 0xD0)
+
+ FriBidiPropertyBlockLevel7_0100, /* 3280..329F */
+ FriBidiPropertyBlockLevel7_3240, /* 32A0..32BF */
+ FriBidiPropertyBlockLevel7_0100, /* 32C0..32DF */
+ FriBidiPropertyBlockLevel7_0100, /* 32E0..32FF */
+
+#define FriBidiPropertyBlockLevel6_A480 (FriBidiPropertyBlockLevel6 + 0xD4)
FriBidiPropertyBlockLevel7_2180, /* A480..A49F */
- FriBidiPropertyBlockLevel7_A4A0, /* A4A0..A4BF */
- FriBidiPropertyBlockLevel7_A4C0, /* A4C0..A4DF */
+ FriBidiPropertyBlockLevel7_21A0, /* A4A0..A4BF */
+ FriBidiPropertyBlockLevel7_2420, /* A4C0..A4DF */
FriBidiPropertyBlockLevel7_0100, /* A4E0..A4FF */
-#define FriBidiPropertyBlockLevel6_FB00 (FriBidiPropertyBlockLevel6 + 0xD0)
+#define FriBidiPropertyBlockLevel6_FB00 (FriBidiPropertyBlockLevel6 + 0xD8)
FriBidiPropertyBlockLevel7_FB00, /* FB00..FB1F */
FriBidiPropertyBlockLevel7_FB20, /* FB20..FB3F */
FriBidiPropertyBlockLevel7_FB40, /* FB40..FB5F */
FriBidiPropertyBlockLevel7_0620, /* FB60..FB7F */
-#define FriBidiPropertyBlockLevel6_FB80 (FriBidiPropertyBlockLevel6 + 0xD4)
+#define FriBidiPropertyBlockLevel6_FB80 (FriBidiPropertyBlockLevel6 + 0xDC)
FriBidiPropertyBlockLevel7_0620, /* FB80..FB9F */
FriBidiPropertyBlockLevel7_0620, /* FBA0..FBBF */
FriBidiPropertyBlockLevel7_0620, /* FBC0..FBDF */
FriBidiPropertyBlockLevel7_0620, /* FBE0..FBFF */
-#define FriBidiPropertyBlockLevel6_FD00 (FriBidiPropertyBlockLevel6 + 0xD8)
+#define FriBidiPropertyBlockLevel6_FD00 (FriBidiPropertyBlockLevel6 + 0xE0)
FriBidiPropertyBlockLevel7_0620, /* FD00..FD1F */
FriBidiPropertyBlockLevel7_FD20, /* FD20..FD3F */
FriBidiPropertyBlockLevel7_0620, /* FD40..FD5F */
FriBidiPropertyBlockLevel7_0620, /* FD60..FD7F */
-#define FriBidiPropertyBlockLevel6_FE00 (FriBidiPropertyBlockLevel6 + 0xDC)
+#define FriBidiPropertyBlockLevel6_FE00 (FriBidiPropertyBlockLevel6 + 0xE4)
- FriBidiPropertyBlockLevel7_0100, /* FE00..FE1F */
+ FriBidiPropertyBlockLevel7_0340, /* FE00..FE1F */
FriBidiPropertyBlockLevel7_FE20, /* FE20..FE3F */
FriBidiPropertyBlockLevel7_FE40, /* FE40..FE5F */
FriBidiPropertyBlockLevel7_FE60, /* FE60..FE7F */
-#define FriBidiPropertyBlockLevel6_FE80 (FriBidiPropertyBlockLevel6 + 0xE0)
+#define FriBidiPropertyBlockLevel6_FE80 (FriBidiPropertyBlockLevel6 + 0xE8)
FriBidiPropertyBlockLevel7_0620, /* FE80..FE9F */
FriBidiPropertyBlockLevel7_0620, /* FEA0..FEBF */
FriBidiPropertyBlockLevel7_0620, /* FEC0..FEDF */
FriBidiPropertyBlockLevel7_FEE0, /* FEE0..FEFF */
-#define FriBidiPropertyBlockLevel6_FF00 (FriBidiPropertyBlockLevel6 + 0xE4)
+#define FriBidiPropertyBlockLevel6_FF00 (FriBidiPropertyBlockLevel6 + 0xEC)
FriBidiPropertyBlockLevel7_FF00, /* FF00..FF1F */
FriBidiPropertyBlockLevel7_0040, /* FF20..FF3F */
- FriBidiPropertyBlockLevel7_FF40, /* FF40..FF5F */
+ FriBidiPropertyBlockLevel7_0040, /* FF40..FF5F */
FriBidiPropertyBlockLevel7_FF60, /* FF60..FF7F */
-#define FriBidiPropertyBlockLevel6_FF80 (FriBidiPropertyBlockLevel6 + 0xE8)
+#define FriBidiPropertyBlockLevel6_FF80 (FriBidiPropertyBlockLevel6 + 0xF0)
FriBidiPropertyBlockLevel7_0100, /* FF80..FF9F */
FriBidiPropertyBlockLevel7_0100, /* FFA0..FFBF */
FriBidiPropertyBlockLevel7_0100, /* FFC0..FFDF */
FriBidiPropertyBlockLevel7_FFE0, /* FFE0..FFFF */
-#define FriBidiPropertyBlockLevel6_1D100 (FriBidiPropertyBlockLevel6 + 0xEC)
+#define FriBidiPropertyBlockLevel6_1D100 (FriBidiPropertyBlockLevel6 + 0xF4)
FriBidiPropertyBlockLevel7_0100, /* 1D100..1D11F */
FriBidiPropertyBlockLevel7_0100, /* 1D120..1D13F */
FriBidiPropertyBlockLevel7_0100, /* 1D140..1D15F */
FriBidiPropertyBlockLevel7_1D160, /* 1D160..1D17F */
-#define FriBidiPropertyBlockLevel6_1D180 (FriBidiPropertyBlockLevel6 + 0xF0)
+#define FriBidiPropertyBlockLevel6_1D180 (FriBidiPropertyBlockLevel6 + 0xF8)
FriBidiPropertyBlockLevel7_1D180, /* 1D180..1D19F */
FriBidiPropertyBlockLevel7_1D1A0, /* 1D1A0..1D1BF */
FriBidiPropertyBlockLevel7_0100, /* 1D1C0..1D1DF */
FriBidiPropertyBlockLevel7_0100, /* 1D1E0..1D1FF */
-#define FriBidiPropertyBlockLevel6_1D780 (FriBidiPropertyBlockLevel6 + 0xF4)
+#define FriBidiPropertyBlockLevel6_1D780 (FriBidiPropertyBlockLevel6 + 0xFC)
FriBidiPropertyBlockLevel7_0100, /* 1D780..1D79F */
FriBidiPropertyBlockLevel7_0100, /* 1D7A0..1D7BF */
FriBidiPropertyBlockLevel7_1D7C0, /* 1D7C0..1D7DF */
FriBidiPropertyBlockLevel7_2460, /* 1D7E0..1D7FF */
-#define FriBidiPropertyBlockLevel6_E0000 (FriBidiPropertyBlockLevel6 + 0xF8)
+#define FriBidiPropertyBlockLevel6_E0000 (FriBidiPropertyBlockLevel6 + 0x100)
FriBidiPropertyBlockLevel7_E0000, /* E0000..E001F */
FriBidiPropertyBlockLevel7_E0020, /* E0020..E003F */
@@ -1954,7 +2004,7 @@ static const FriBidiPropCharType **FriBidiPropertyBlockLevel6[4*63] = {
FriBidiPropertyBlockLevel7_E0020, /* E0060..E007F */
};
-static const FriBidiPropCharType ***FriBidiPropertyBlockLevel5[4*27] = {
+static const FriBidiPropCharType ***FriBidiPropertyBlockLevel5[4*29] = {
#define FriBidiPropertyBlockLevel5_0000 (FriBidiPropertyBlockLevel5 + 0x0)
@@ -2030,7 +2080,7 @@ static const FriBidiPropCharType ***FriBidiPropertyBlockLevel5[4*27] = {
FriBidiPropertyBlockLevel6_0100, /* 1600..167F */
FriBidiPropertyBlockLevel6_1680, /* 1680..16FF */
- FriBidiPropertyBlockLevel6_0100, /* 1700..177F */
+ FriBidiPropertyBlockLevel6_1700, /* 1700..177F */
FriBidiPropertyBlockLevel6_1780, /* 1780..17FF */
#define FriBidiPropertyBlockLevel5_1800 (FriBidiPropertyBlockLevel5 + 0x2C)
@@ -2065,80 +2115,94 @@ static const FriBidiPropCharType ***FriBidiPropertyBlockLevel5[4*27] = {
FriBidiPropertyBlockLevel6_2400, /* 2400..247F */
FriBidiPropertyBlockLevel6_2480, /* 2480..24FF */
- FriBidiPropertyBlockLevel6_2500, /* 2500..257F */
- FriBidiPropertyBlockLevel6_2580, /* 2580..25FF */
+ FriBidiPropertyBlockLevel6_2280, /* 2500..257F */
+ FriBidiPropertyBlockLevel6_2280, /* 2580..25FF */
#define FriBidiPropertyBlockLevel5_2600 (FriBidiPropertyBlockLevel5 + 0x40)
FriBidiPropertyBlockLevel6_2600, /* 2600..267F */
- FriBidiPropertyBlockLevel6_0100, /* 2680..26FF */
+ FriBidiPropertyBlockLevel6_2680, /* 2680..26FF */
FriBidiPropertyBlockLevel6_2700, /* 2700..277F */
FriBidiPropertyBlockLevel6_2780, /* 2780..27FF */
#define FriBidiPropertyBlockLevel5_2800 (FriBidiPropertyBlockLevel5 + 0x44)
- FriBidiPropertyBlockLevel6_2500, /* 2800..287F */
- FriBidiPropertyBlockLevel6_2500, /* 2880..28FF */
- FriBidiPropertyBlockLevel6_0100, /* 2900..297F */
- FriBidiPropertyBlockLevel6_0100, /* 2980..29FF */
+ FriBidiPropertyBlockLevel6_2280, /* 2800..287F */
+ FriBidiPropertyBlockLevel6_2280, /* 2880..28FF */
+ FriBidiPropertyBlockLevel6_2280, /* 2900..297F */
+ FriBidiPropertyBlockLevel6_2280, /* 2980..29FF */
+
+#define FriBidiPropertyBlockLevel5_2A00 (FriBidiPropertyBlockLevel5 + 0x48)
+
+ FriBidiPropertyBlockLevel6_2280, /* 2A00..2A7F */
+ FriBidiPropertyBlockLevel6_2280, /* 2A80..2AFF */
+ FriBidiPropertyBlockLevel6_0100, /* 2B00..2B7F */
+ FriBidiPropertyBlockLevel6_0100, /* 2B80..2BFF */
-#define FriBidiPropertyBlockLevel5_2E00 (FriBidiPropertyBlockLevel5 + 0x48)
+#define FriBidiPropertyBlockLevel5_2E00 (FriBidiPropertyBlockLevel5 + 0x4C)
FriBidiPropertyBlockLevel6_0100, /* 2E00..2E7F */
FriBidiPropertyBlockLevel6_2E80, /* 2E80..2EFF */
- FriBidiPropertyBlockLevel6_2500, /* 2F00..2F7F */
+ FriBidiPropertyBlockLevel6_2280, /* 2F00..2F7F */
FriBidiPropertyBlockLevel6_2F80, /* 2F80..2FFF */
-#define FriBidiPropertyBlockLevel5_3000 (FriBidiPropertyBlockLevel5 + 0x4C)
+#define FriBidiPropertyBlockLevel5_3000 (FriBidiPropertyBlockLevel5 + 0x50)
FriBidiPropertyBlockLevel6_3000, /* 3000..307F */
FriBidiPropertyBlockLevel6_3080, /* 3080..30FF */
FriBidiPropertyBlockLevel6_0100, /* 3100..317F */
FriBidiPropertyBlockLevel6_0100, /* 3180..31FF */
-#define FriBidiPropertyBlockLevel5_A400 (FriBidiPropertyBlockLevel5 + 0x50)
+#define FriBidiPropertyBlockLevel5_3200 (FriBidiPropertyBlockLevel5 + 0x54)
+
+ FriBidiPropertyBlockLevel6_3200, /* 3200..327F */
+ FriBidiPropertyBlockLevel6_3280, /* 3280..32FF */
+ FriBidiPropertyBlockLevel6_0100, /* 3300..337F */
+ FriBidiPropertyBlockLevel6_0100, /* 3380..33FF */
+
+#define FriBidiPropertyBlockLevel5_A400 (FriBidiPropertyBlockLevel5 + 0x58)
FriBidiPropertyBlockLevel6_0100, /* A400..A47F */
FriBidiPropertyBlockLevel6_A480, /* A480..A4FF */
FriBidiPropertyBlockLevel6_0100, /* A500..A57F */
FriBidiPropertyBlockLevel6_0100, /* A580..A5FF */
-#define FriBidiPropertyBlockLevel5_FA00 (FriBidiPropertyBlockLevel5 + 0x54)
+#define FriBidiPropertyBlockLevel5_FA00 (FriBidiPropertyBlockLevel5 + 0x5C)
FriBidiPropertyBlockLevel6_0100, /* FA00..FA7F */
FriBidiPropertyBlockLevel6_0100, /* FA80..FAFF */
FriBidiPropertyBlockLevel6_FB00, /* FB00..FB7F */
FriBidiPropertyBlockLevel6_FB80, /* FB80..FBFF */
-#define FriBidiPropertyBlockLevel5_FC00 (FriBidiPropertyBlockLevel5 + 0x58)
+#define FriBidiPropertyBlockLevel5_FC00 (FriBidiPropertyBlockLevel5 + 0x60)
FriBidiPropertyBlockLevel6_FB80, /* FC00..FC7F */
FriBidiPropertyBlockLevel6_FB80, /* FC80..FCFF */
FriBidiPropertyBlockLevel6_FD00, /* FD00..FD7F */
FriBidiPropertyBlockLevel6_FB80, /* FD80..FDFF */
-#define FriBidiPropertyBlockLevel5_FE00 (FriBidiPropertyBlockLevel5 + 0x5C)
+#define FriBidiPropertyBlockLevel5_FE00 (FriBidiPropertyBlockLevel5 + 0x64)
FriBidiPropertyBlockLevel6_FE00, /* FE00..FE7F */
FriBidiPropertyBlockLevel6_FE80, /* FE80..FEFF */
FriBidiPropertyBlockLevel6_FF00, /* FF00..FF7F */
FriBidiPropertyBlockLevel6_FF80, /* FF80..FFFF */
-#define FriBidiPropertyBlockLevel5_1D000 (FriBidiPropertyBlockLevel5 + 0x60)
+#define FriBidiPropertyBlockLevel5_1D000 (FriBidiPropertyBlockLevel5 + 0x68)
FriBidiPropertyBlockLevel6_0100, /* 1D000..1D07F */
FriBidiPropertyBlockLevel6_0100, /* 1D080..1D0FF */
FriBidiPropertyBlockLevel6_1D100, /* 1D100..1D17F */
FriBidiPropertyBlockLevel6_1D180, /* 1D180..1D1FF */
-#define FriBidiPropertyBlockLevel5_1D600 (FriBidiPropertyBlockLevel5 + 0x64)
+#define FriBidiPropertyBlockLevel5_1D600 (FriBidiPropertyBlockLevel5 + 0x6C)
FriBidiPropertyBlockLevel6_0100, /* 1D600..1D67F */
FriBidiPropertyBlockLevel6_0100, /* 1D680..1D6FF */
FriBidiPropertyBlockLevel6_0100, /* 1D700..1D77F */
FriBidiPropertyBlockLevel6_1D780, /* 1D780..1D7FF */
-#define FriBidiPropertyBlockLevel5_E0000 (FriBidiPropertyBlockLevel5 + 0x68)
+#define FriBidiPropertyBlockLevel5_E0000 (FriBidiPropertyBlockLevel5 + 0x70)
FriBidiPropertyBlockLevel6_E0000, /* E0000..E007F */
FriBidiPropertyBlockLevel6_0100, /* E0080..E00FF */
@@ -2186,14 +2250,14 @@ static const FriBidiPropCharType ****FriBidiPropertyBlockLevel4[4*12] = {
#define FriBidiPropertyBlockLevel4_2800 (FriBidiPropertyBlockLevel4 + 0x14)
FriBidiPropertyBlockLevel5_2800, /* 2800..29FF */
- FriBidiPropertyBlockLevel5_1200, /* 2A00..2BFF */
+ FriBidiPropertyBlockLevel5_2A00, /* 2A00..2BFF */
FriBidiPropertyBlockLevel5_1200, /* 2C00..2DFF */
FriBidiPropertyBlockLevel5_2E00, /* 2E00..2FFF */
#define FriBidiPropertyBlockLevel4_3000 (FriBidiPropertyBlockLevel4 + 0x18)
FriBidiPropertyBlockLevel5_3000, /* 3000..31FF */
- FriBidiPropertyBlockLevel5_1200, /* 3200..33FF */
+ FriBidiPropertyBlockLevel5_3200, /* 3200..33FF */
FriBidiPropertyBlockLevel5_1200, /* 3400..35FF */
FriBidiPropertyBlockLevel5_1200, /* 3600..37FF */
diff --git a/fribidi_tab_mirroring.i b/fribidi_tab_mirroring.i
index 465b47e..ef7382d 100644
--- a/fribidi_tab_mirroring.i
+++ b/fribidi_tab_mirroring.i
@@ -1,5 +1,5 @@
/*
- This file was automatically created from BidiMirroring.txt, version 1
+ This file was automatically created from BidiMirroring.txt, version 3.2.0
by fribidi_create_mirroring
*/
@@ -54,6 +54,7 @@ FriBidiMirroredChars[] =
{0x220B, 0x2208},
{0x220C, 0x2209},
{0x220D, 0x220A},
+ {0x2215, 0x29F5},
{0x223C, 0x223D},
{0x223D, 0x223C},
{0x2243, 0x22CD},
@@ -103,8 +104,13 @@ FriBidiMirroredChars[] =
{0x2290, 0x228F},
{0x2291, 0x2292},
{0x2292, 0x2291},
+ {0x2298, 0x29B8},
{0x22A2, 0x22A3},
{0x22A3, 0x22A2},
+ {0x22A6, 0x2ADE},
+ {0x22A8, 0x2AE4},
+ {0x22A9, 0x2AE3},
+ {0x22AB, 0x2AE5},
{0x22B0, 0x22B1},
{0x22B1, 0x22B0},
{0x22B2, 0x22B3},
@@ -146,12 +152,172 @@ FriBidiMirroredChars[] =
{0x22ED, 0x22EC},
{0x22F0, 0x22F1},
{0x22F1, 0x22F0},
+ {0x22F2, 0x22FA},
+ {0x22F3, 0x22FB},
+ {0x22F4, 0x22FC},
+ {0x22F6, 0x22FD},
+ {0x22F7, 0x22FE},
+ {0x22FA, 0x22F2},
+ {0x22FB, 0x22F3},
+ {0x22FC, 0x22F4},
+ {0x22FD, 0x22F6},
+ {0x22FE, 0x22F7},
{0x2308, 0x2309},
{0x2309, 0x2308},
{0x230A, 0x230B},
{0x230B, 0x230A},
{0x2329, 0x232A},
{0x232A, 0x2329},
+ {0x2768, 0x2769},
+ {0x2769, 0x2768},
+ {0x276A, 0x276B},
+ {0x276B, 0x276A},
+ {0x276C, 0x276D},
+ {0x276D, 0x276C},
+ {0x276E, 0x276F},
+ {0x276F, 0x276E},
+ {0x2770, 0x2771},
+ {0x2771, 0x2770},
+ {0x2772, 0x2773},
+ {0x2773, 0x2772},
+ {0x2774, 0x2775},
+ {0x2775, 0x2774},
+ {0x27D5, 0x27D6},
+ {0x27D6, 0x27D5},
+ {0x27DD, 0x27DE},
+ {0x27DE, 0x27DD},
+ {0x27E2, 0x27E3},
+ {0x27E3, 0x27E2},
+ {0x27E4, 0x27E5},
+ {0x27E5, 0x27E4},
+ {0x27E6, 0x27E7},
+ {0x27E7, 0x27E6},
+ {0x27E8, 0x27E9},
+ {0x27E9, 0x27E8},
+ {0x27EA, 0x27EB},
+ {0x27EB, 0x27EA},
+ {0x2983, 0x2984},
+ {0x2984, 0x2983},
+ {0x2985, 0x2986},
+ {0x2986, 0x2985},
+ {0x2987, 0x2988},
+ {0x2988, 0x2987},
+ {0x2989, 0x298A},
+ {0x298A, 0x2989},
+ {0x298B, 0x298C},
+ {0x298C, 0x298B},
+ {0x298D, 0x2990},
+ {0x298E, 0x298F},
+ {0x298F, 0x298E},
+ {0x2990, 0x298D},
+ {0x2991, 0x2992},
+ {0x2992, 0x2991},
+ {0x2993, 0x2994},
+ {0x2994, 0x2993},
+ {0x2995, 0x2996},
+ {0x2996, 0x2995},
+ {0x2997, 0x2998},
+ {0x2998, 0x2997},
+ {0x29B8, 0x2298},
+ {0x29C0, 0x29C1},
+ {0x29C1, 0x29C0},
+ {0x29C4, 0x29C5},
+ {0x29C5, 0x29C4},
+ {0x29CF, 0x29D0},
+ {0x29D0, 0x29CF},
+ {0x29D1, 0x29D2},
+ {0x29D2, 0x29D1},
+ {0x29D4, 0x29D5},
+ {0x29D5, 0x29D4},
+ {0x29D8, 0x29D9},
+ {0x29D9, 0x29D8},
+ {0x29DA, 0x29DB},
+ {0x29DB, 0x29DA},
+ {0x29F5, 0x2215},
+ {0x29F8, 0x29F9},
+ {0x29F9, 0x29F8},
+ {0x29FC, 0x29FD},
+ {0x29FD, 0x29FC},
+ {0x2A2B, 0x2A2C},
+ {0x2A2C, 0x2A2D},
+ {0x2A2D, 0x2A2E},
+ {0x2A2E, 0x2A2D},
+ {0x2A34, 0x2A35},
+ {0x2A35, 0x2A34},
+ {0x2A3C, 0x2A3D},
+ {0x2A3D, 0x2A3C},
+ {0x2A64, 0x2A65},
+ {0x2A65, 0x2A64},
+ {0x2A79, 0x2A7A},
+ {0x2A7A, 0x2A79},
+ {0x2A7D, 0x2A7E},
+ {0x2A7E, 0x2A7D},
+ {0x2A7F, 0x2A80},
+ {0x2A80, 0x2A7F},
+ {0x2A81, 0x2A82},
+ {0x2A82, 0x2A81},
+ {0x2A83, 0x2A84},
+ {0x2A84, 0x2A83},
+ {0x2A8B, 0x2A8C},
+ {0x2A8C, 0x2A8B},
+ {0x2A91, 0x2A92},
+ {0x2A92, 0x2A91},
+ {0x2A93, 0x2A94},
+ {0x2A94, 0x2A93},
+ {0x2A95, 0x2A96},
+ {0x2A96, 0x2A95},
+ {0x2A97, 0x2A98},
+ {0x2A98, 0x2A97},
+ {0x2A99, 0x2A9A},
+ {0x2A9A, 0x2A99},
+ {0x2A9B, 0x2A9C},
+ {0x2A9C, 0x2A9B},
+ {0x2AA1, 0x2AA2},
+ {0x2AA2, 0x2AA1},
+ {0x2AA6, 0x2AA7},
+ {0x2AA7, 0x2AA6},
+ {0x2AA8, 0x2AA9},
+ {0x2AA9, 0x2AA8},
+ {0x2AAA, 0x2AAB},
+ {0x2AAB, 0x2AAA},
+ {0x2AAC, 0x2AAD},
+ {0x2AAD, 0x2AAC},
+ {0x2AAF, 0x2AB0},
+ {0x2AB0, 0x2AAF},
+ {0x2AB3, 0x2AB4},
+ {0x2AB4, 0x2AB3},
+ {0x2ABB, 0x2ABC},
+ {0x2ABC, 0x2ABB},
+ {0x2ABD, 0x2ABE},
+ {0x2ABE, 0x2ABD},
+ {0x2ABF, 0x2AC0},
+ {0x2AC0, 0x2ABF},
+ {0x2AC1, 0x2AC2},
+ {0x2AC2, 0x2AC1},
+ {0x2AC3, 0x2AC4},
+ {0x2AC4, 0x2AC3},
+ {0x2AC5, 0x2AC6},
+ {0x2AC6, 0x2AC5},
+ {0x2ACD, 0x2ACE},
+ {0x2ACE, 0x2ACD},
+ {0x2ACF, 0x2AD0},
+ {0x2AD0, 0x2ACF},
+ {0x2AD1, 0x2AD2},
+ {0x2AD2, 0x2AD1},
+ {0x2AD3, 0x2AD4},
+ {0x2AD4, 0x2AD3},
+ {0x2AD5, 0x2AD6},
+ {0x2AD6, 0x2AD5},
+ {0x2ADE, 0x22A6},
+ {0x2AE3, 0x22A9},
+ {0x2AE4, 0x22A8},
+ {0x2AE5, 0x22AB},
+ {0x2AEC, 0x2AED},
+ {0x2AED, 0x2AEC},
+ {0x2AF7, 0x2AF8},
+ {0x2AF8, 0x2AF7},
+ {0x2AF9, 0x2AFA},
+ {0x2AFA, 0x2AF9},
{0x3008, 0x3009},
{0x3009, 0x3008},
{0x300A, 0x300B},
@@ -170,11 +336,23 @@ FriBidiMirroredChars[] =
{0x3019, 0x3018},
{0x301A, 0x301B},
{0x301B, 0x301A},
+ {0xFF08, 0xFF09},
+ {0xFF09, 0xFF08},
+ {0xFF1C, 0xFF1E},
+ {0xFF1E, 0xFF1C},
+ {0xFF3B, 0xFF3D},
+ {0xFF3D, 0xFF3B},
+ {0xFF5B, 0xFF5D},
+ {0xFF5D, 0xFF5B},
+ {0xFF5F, 0xFF60},
+ {0xFF60, 0xFF5F},
+ {0xFF62, 0xFF63},
+ {0xFF63, 0xFF62},
} ;
/* *INDENT-ON* */
-const int nFriBidiMirroredChars = 140;
+const int nFriBidiMirroredChars = 318;
#endif /* FRIBIDI_TAB_MIRRORING_I */
diff --git a/fribidi_unicode.h b/fribidi_unicode.h
index 5447d8d..c928497 100644
--- a/fribidi_unicode.h
+++ b/fribidi_unicode.h
@@ -31,7 +31,7 @@ extern "C"
/* Unicode version */
#define FRIBIDI_UNICODE_CHARS 0x110000
-#define FRIBIDI_UNICODE_VERSION "3.1.1"
+#define FRIBIDI_UNICODE_VERSION "3.2.0"
/* UAX#9 Unicode BiDirectional Algorithm */
#define UNI_MAX_BIDI_LEVEL 61
diff --git a/fribidi_utils.c b/fribidi_utils.c
index d2d0f54..e632324 100644
--- a/fribidi_utils.c
+++ b/fribidi_utils.c
@@ -61,7 +61,7 @@
* &num_vis_ranges, *vis_ranges);
**----------------------------------------------------------------------*/
void
-fribidi_map_range (FriBidiEnv* fribidienv,
+fribidi_map_range (FriBidiEnv *fribidienv,
/* input */
FriBidiStrIndex in_span[2], /* Start and end span */
FriBidiStrIndex len, boolean is_v2l_map, /* Needed for embedding_level */
@@ -113,15 +113,15 @@ fribidi_map_range (FriBidiEnv* fribidienv,
* length of the section in the new string that needs redrawing.
*----------------------------------------------------------------------*/
void
-fribidi_find_string_changes ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiChar *old_str,
- FriBidiStrIndex old_len,
- const FriBidiChar *new_str,
- FriBidiStrIndex new_len,
- /* output */
- FriBidiStrIndex *change_start,
- FriBidiStrIndex *change_len)
+fribidi_find_string_changes (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiChar *old_str,
+ FriBidiStrIndex old_len,
+ const FriBidiChar *new_str,
+ FriBidiStrIndex new_len,
+ /* output */
+ FriBidiStrIndex *change_start,
+ FriBidiStrIndex *change_len)
{
FriBidiStrIndex i, num_bol, num_eol;
@@ -193,13 +193,12 @@ fribidi_find_string_changes ( FriBidiEnv* fribidienv,
*
*----------------------------------------------------------------------*/
void
-fribidi_xpos_resolve (FriBidiEnv* fribidienv,
+fribidi_xpos_resolve (FriBidiEnv *fribidienv,
/* input */
int x_pos, int x_offset, FriBidiStrIndex len,
const FriBidiLevel *embedding_level_list,
FriBidiCharType base_dir,
- const FriBidiStrIndex *vis2log,
- const int *char_widths,
+ const FriBidiStrIndex *vis2log, const int *char_widths,
/* output */
FriBidiStrIndex *res_log_pos,
FriBidiStrIndex *res_vis_pos,
@@ -303,7 +302,7 @@ fribidi_xpos_resolve (FriBidiEnv* fribidienv,
* if the embedding level for the character is odd.
*----------------------------------------------------------------------*/
boolean
-fribidi_is_char_rtl (FriBidiEnv* fribidienv,
+fribidi_is_char_rtl (FriBidiEnv *fribidienv,
const FriBidiLevel *embedding_level_list,
FriBidiCharType base_dir, FriBidiStrIndex idx)
{
@@ -320,16 +319,15 @@ fribidi_is_char_rtl (FriBidiEnv* fribidienv,
* the same attributes.
*----------------------------------------------------------------------*/
void
-fribidi_runs_log2vis ( FriBidiEnv* fribidienv,
- /* input */
- const FriBidiList *logical_runs, /* List of FriBidiRunType */
- FriBidiStrIndex len,
- const FriBidiStrIndex *log2vis,
- FriBidiCharType base_dir, /* TBD: remove it, not needed */
- /* output */
- FriBidiList **visual_runs)
+fribidi_runs_log2vis (FriBidiEnv *fribidienv,
+ /* input */
+ const FriBidiList *logical_runs, /* List of FriBidiRunType */
+ FriBidiStrIndex len, const FriBidiStrIndex *log2vis, FriBidiCharType base_dir, /* TBD: remove it, not needed */
+ /* output */
+ FriBidiList **visual_runs)
{
- void **visual_attribs = (void **) fribidi_malloc (fribidienv, sizeof (void *) * len);
+ void **visual_attribs =
+ (void **) fribidi_malloc (fribidienv, sizeof (void *) * len);
void *current_attrib;
FriBidiStrIndex pos, i;
const FriBidiList *list;
@@ -361,16 +359,16 @@ fribidi_runs_log2vis ( FriBidiEnv* fribidienv,
{
if (i == len || current_attrib != visual_attribs[i])
{
- FriBidiRunType *run =
- (FriBidiRunType *) fribidi_malloc (fribidienv, sizeof (FriBidiRunType));
+ FriBidiRunType *run = (FriBidiRunType *) fribidi_malloc (fribidienv,
+ sizeof
+ (FriBidiRunType));
run->length = i - current_idx;
run->attribute = current_attrib;
/* Keeping track of the last node is crucial for efficiency
for long lists... */
if (last == NULL)
- last = *visual_runs = fribidi_list_append (fribidienv,
- NULL, run);
+ last = *visual_runs = fribidi_list_append (fribidienv, NULL, run);
else
{
fribidi_list_append (fribidienv, last, run);
diff --git a/fribidi_wcwidth.c b/fribidi_wcwidth.c
index b03f767..1c8f7b5 100644
--- a/fribidi_wcwidth.c
+++ b/fribidi_wcwidth.c
@@ -1,9 +1,18 @@
/*
* This is an implementation of wcwidth() and wcswidth() as defined in
- * "The Single UNIX Specification, Version 2, The Open Group, 1997"
- * <http://www.UNIX-systems.org/online.html>
+ * IEEE Std 1002.1-2001.
*
- * Markus Kuhn -- 2001-09-08 -- public domain
+ * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+ * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+ *
+ * Markus Kuhn -- 2002-03-28 (Unicode 3.2)
+ * Permission to use, copy, modify, and distribute this software
+ * for any purpose and without fee is hereby granted. The author
+ * disclaims all warranties with regard to this software.
+ *
+ * Latest version:
+ *
+ * http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
*/
/* Modified by Behdad Esfahbod <behdad@bamdad.org> to use fribidi types*/
@@ -12,8 +21,8 @@
struct interval
{
- unsigned short first;
- unsigned short last;
+ int first;
+ int last;
};
/* auxiliary function for binary search in interval table */
@@ -66,14 +75,17 @@ bisearch (FriBidiChar ucs, const struct interval *table, int max)
* ISO 8859-1 and WGL4 characters, Unicode control characters,
* etc.) have a column width of 1.
*
+ * This implementation assumes that FriBidiChar characters are encoded
+ * in ISO 10646.
*/
int
fribidi_wcwidth (FriBidiChar ucs)
{
/* sorted list of non-overlapping intervals of non-spacing characters */
+ /* generated with "uniset +cat=Me +cat=Mn +cat=Cf +200B c" */
static const struct interval combining[] = {
- {0x0300, 0x034E}, {0x0360, 0x0362}, {0x0483, 0x0486},
+ {0x0300, 0x034F}, {0x0360, 0x036F}, {0x0483, 0x0486},
{0x0488, 0x0489}, {0x0591, 0x05A1}, {0x05A3, 0x05B9},
{0x05BB, 0x05BD}, {0x05BF, 0x05BF}, {0x05C1, 0x05C2},
{0x05C4, 0x05C4}, {0x064B, 0x0655}, {0x0670, 0x0670},
@@ -101,12 +113,15 @@ fribidi_wcwidth (FriBidiChar ucs)
{0x0F86, 0x0F87}, {0x0F90, 0x0F97}, {0x0F99, 0x0FBC},
{0x0FC6, 0x0FC6}, {0x102D, 0x1030}, {0x1032, 0x1032},
{0x1036, 0x1037}, {0x1039, 0x1039}, {0x1058, 0x1059},
- {0x1160, 0x11FF}, {0x17B7, 0x17BD}, {0x17C6, 0x17C6},
+ {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753},
+ {0x1772, 0x1773}, {0x17B7, 0x17BD}, {0x17C6, 0x17C6},
{0x17C9, 0x17D3}, {0x180B, 0x180E}, {0x18A9, 0x18A9},
- {0x200B, 0x200F}, {0x202A, 0x202E}, {0x206A, 0x206F},
- {0x20D0, 0x20E3}, {0x302A, 0x302F}, {0x3099, 0x309A},
- {0xFB1E, 0xFB1E}, {0xFE20, 0xFE23}, {0xFEFF, 0xFEFF},
- {0xFFF9, 0xFFFB}
+ {0x200B, 0x200F}, {0x202A, 0x202E}, {0x2060, 0x2063},
+ {0x206A, 0x206F}, {0x20D0, 0x20EA}, {0x302A, 0x302F},
+ {0x3099, 0x309A}, {0xFB1E, 0xFB1E}, {0xFE00, 0xFE0F},
+ {0xFE20, 0xFE23}, {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB},
+ {0x1D167, 0x1D169}, {0x1D173, 0x1D182}, {0x1D185, 0x1D18B},
+ {0x1D1AA, 0x1D1AD}, {0xE0001, 0xE0001}, {0xE0020, 0xE007F}
};
/* test for 8-bit control characters */
@@ -123,11 +138,11 @@ fribidi_wcwidth (FriBidiChar ucs)
/* if we arrive here, ucs is not a combining or C0/C1 control character */
return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */
- (ucs >= 0x2e80 && ucs <= 0xa4cf && (ucs & ~0x0011) != 0x300a && ucs != 0x303f) || /* CJK ... Yi */
+ ucs == 0x2329 || ucs == 0x232a || (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f) || /* CJK ... Yi */
(ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
(ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
(ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
- (ucs >= 0xff00 && ucs <= 0xff5f) || /* Fullwidth Forms */
+ (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */
(ucs >= 0xffe0 && ucs <= 0xffe6) ||
(ucs >= 0x20000 && ucs <= 0x2ffff)));
}
@@ -157,10 +172,10 @@ fribidi_wcswidth (const FriBidiChar *pwcs, FriBidiStrIndex n)
* recommended for general use.
*/
static int
-wcwidth_cjk (FriBidiChar ucs)
+fribidi_wcwidth_cjk (FriBidiChar ucs)
{
/* sorted list of non-overlapping intervals of East Asian Ambiguous
- * characters */
+ * characters, generated with "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
static const struct interval ambiguous[] = {
{0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8},
{0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4},
@@ -179,32 +194,31 @@ wcwidth_cjk (FriBidiChar ucs)
{0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261},
{0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB},
{0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB},
- {0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x034E},
- {0x0360, 0x0362}, {0x0391, 0x03A1}, {0x03A3, 0x03A9},
- {0x03B1, 0x03C1}, {0x03C3, 0x03C9}, {0x0401, 0x0401},
- {0x0410, 0x044F}, {0x0451, 0x0451}, {0x2010, 0x2010},
- {0x2013, 0x2016}, {0x2018, 0x2019}, {0x201C, 0x201D},
- {0x2020, 0x2022}, {0x2024, 0x2027}, {0x2030, 0x2030},
- {0x2032, 0x2033}, {0x2035, 0x2035}, {0x203B, 0x203B},
- {0x203E, 0x203E}, {0x2074, 0x2074}, {0x207F, 0x207F},
- {0x2081, 0x2084}, {0x20AC, 0x20AC}, {0x2103, 0x2103},
- {0x2105, 0x2105}, {0x2109, 0x2109}, {0x2113, 0x2113},
- {0x2116, 0x2116}, {0x2121, 0x2122}, {0x2126, 0x2126},
- {0x212B, 0x212B}, {0x2153, 0x2155}, {0x215B, 0x215E},
- {0x2160, 0x216B}, {0x2170, 0x2179}, {0x2190, 0x2199},
- {0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4},
- {0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203},
- {0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F},
- {0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A},
- {0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225},
- {0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237},
- {0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C},
- {0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267},
- {0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283},
- {0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299},
- {0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312},
- {0x2329, 0x232A}, {0x2460, 0x24BF}, {0x24D0, 0x24E9},
- {0x2500, 0x254B}, {0x2550, 0x2574}, {0x2580, 0x258F},
+ {0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0391, 0x03A1},
+ {0x03A3, 0x03A9}, {0x03B1, 0x03C1}, {0x03C3, 0x03C9},
+ {0x0401, 0x0401}, {0x0410, 0x044F}, {0x0451, 0x0451},
+ {0x2010, 0x2010}, {0x2013, 0x2016}, {0x2018, 0x2019},
+ {0x201C, 0x201D}, {0x2020, 0x2022}, {0x2024, 0x2027},
+ {0x2030, 0x2030}, {0x2032, 0x2033}, {0x2035, 0x2035},
+ {0x203B, 0x203B}, {0x203E, 0x203E}, {0x2074, 0x2074},
+ {0x207F, 0x207F}, {0x2081, 0x2084}, {0x20AC, 0x20AC},
+ {0x2103, 0x2103}, {0x2105, 0x2105}, {0x2109, 0x2109},
+ {0x2113, 0x2113}, {0x2116, 0x2116}, {0x2121, 0x2122},
+ {0x2126, 0x2126}, {0x212B, 0x212B}, {0x2153, 0x2154},
+ {0x215B, 0x215E}, {0x2160, 0x216B}, {0x2170, 0x2179},
+ {0x2190, 0x2199}, {0x21B8, 0x21B9}, {0x21D2, 0x21D2},
+ {0x21D4, 0x21D4}, {0x21E7, 0x21E7}, {0x2200, 0x2200},
+ {0x2202, 0x2203}, {0x2207, 0x2208}, {0x220B, 0x220B},
+ {0x220F, 0x220F}, {0x2211, 0x2211}, {0x2215, 0x2215},
+ {0x221A, 0x221A}, {0x221D, 0x2220}, {0x2223, 0x2223},
+ {0x2225, 0x2225}, {0x2227, 0x222C}, {0x222E, 0x222E},
+ {0x2234, 0x2237}, {0x223C, 0x223D}, {0x2248, 0x2248},
+ {0x224C, 0x224C}, {0x2252, 0x2252}, {0x2260, 0x2261},
+ {0x2264, 0x2267}, {0x226A, 0x226B}, {0x226E, 0x226F},
+ {0x2282, 0x2283}, {0x2286, 0x2287}, {0x2295, 0x2295},
+ {0x2299, 0x2299}, {0x22A5, 0x22A5}, {0x22BF, 0x22BF},
+ {0x2312, 0x2312}, {0x2460, 0x24E9}, {0x24EB, 0x24FE},
+ {0x2500, 0x254B}, {0x2550, 0x2573}, {0x2580, 0x258F},
{0x2592, 0x2595}, {0x25A0, 0x25A1}, {0x25A3, 0x25A9},
{0x25B2, 0x25B3}, {0x25B6, 0x25B7}, {0x25BC, 0x25BD},
{0x25C0, 0x25C1}, {0x25C6, 0x25C8}, {0x25CB, 0x25CB},
@@ -213,8 +227,7 @@ wcwidth_cjk (FriBidiChar ucs)
{0x261C, 0x261C}, {0x261E, 0x261E}, {0x2640, 0x2640},
{0x2642, 0x2642}, {0x2660, 0x2661}, {0x2663, 0x2665},
{0x2667, 0x266A}, {0x266C, 0x266D}, {0x266F, 0x266F},
- {0x273D, 0x273D}, {0x3008, 0x300B}, {0x3014, 0x3015},
- {0x3018, 0x301B}, {0xFFFD, 0xFFFD}
+ {0x273D, 0x273D}, {0x2776, 0x277F}, {0xFFFD, 0xFFFD}
};
/* binary search in table of non-spacing characters */
@@ -232,7 +245,7 @@ fribidi_wcswidth_cjk (const FriBidiChar *pwcs, FriBidiStrIndex n)
int w, width = 0;
for (; *pwcs && n-- > 0; pwcs++)
- if ((w = wcwidth_cjk (*pwcs)) < 0)
+ if ((w = fribidi_wcwidth_cjk (*pwcs)) < 0)
return -1;
else
width += w;
diff --git a/packtab.c b/packtab.c
index 95c3555..2b8b22d 100644
--- a/packtab.c
+++ b/packtab.c
@@ -218,11 +218,13 @@ write_array ()
{
int kk, jj;
fprintf (f, "\n\n#define %s", table_name);
- if (best_t[lev + 1] != 1) {
- fprintf (f, "Level%d_%0*X", best_lev - lev - 1, digits,
- x[i] * pow[n - nn]);
- }
- fprintf (f, " (%sLevel%d + 0x%0X)\n", table_name, best_lev - lev - 1, ofs);
+ if (best_t[lev + 1] != 1)
+ {
+ fprintf (f, "Level%d_%0*X", best_lev - lev - 1, digits,
+ x[i] * pow[n - nn]);
+ }
+ fprintf (f, " (%sLevel%d + 0x%0X)\n", table_name, best_lev - lev - 1,
+ ofs);
kk = x[i] * cluster;
if (!lev)
if (name)
diff --git a/unidata/BidiMirroring.txt b/unidata/BidiMirroring.txt
index 8ac5be9..fa62021 100644
--- a/unidata/BidiMirroring.txt
+++ b/unidata/BidiMirroring.txt
@@ -1,10 +1,10 @@
-# BidiMirroring-1.txt
+# BidiMirroring-3.2.0.txt
#
# This file is an informative supplement to the UnicodeData file. It
# lists characters that have the mirrored property
# where there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
-# The repertoire covered by the file is Unicode 3.0.1.
+# The repertoire covered by the file is Unicode 3.2.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
@@ -20,14 +20,15 @@
# Code points with the "mirrored" property but no appropriate mirrors are
# listed as comments at the end of the file.
#
-# For information on bidi mirroring, see UTR #21: Bidirectional Algorithm,
+# For information on bidi mirroring, see UAX #9: Bidirectional Algorithm,
# at http://www.unicode.org/unicode/reports/tr9/
#
# Please address any comments to <errata@unicode.org>.
# Note that this is an archival address: messages will be checked,
# but do not expect an immediate response.
#
-# This file was originally created by Markus Scherer
+# This file was originally created by Markus Scherer.
+# Extended for Unicode 3.2 by Ken Whistler.
#
# ############################################################
@@ -55,6 +56,7 @@
220B; 2208 # CONTAINS AS MEMBER
220C; 2209 # DOES NOT CONTAIN AS MEMBER
220D; 220A # SMALL CONTAINS AS MEMBER
+2215; 29F5 # DIVISION SLASH
223C; 223D # TILDE OPERATOR
223D; 223C # REVERSED TILDE
2243; 22CD # ASYMPTOTICALLY EQUAL TO
@@ -104,8 +106,13 @@
2290; 228F # SQUARE ORIGINAL OF
2291; 2292 # SQUARE IMAGE OF OR EQUAL TO
2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO
+2298; 29B8 # CIRCLED DIVISION SLASH
22A2; 22A3 # RIGHT TACK
22A3; 22A2 # LEFT TACK
+22A6; 2ADE # ASSERTION
+22A8; 2AE4 # TRUE
+22A9; 2AE3 # FORCES
+22AB; 2AE5 # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
22B0; 22B1 # PRECEDES UNDER RELATION
22B1; 22B0 # SUCCEEDS UNDER RELATION
22B2; 22B3 # NORMAL SUBGROUP OF
@@ -147,12 +154,172 @@
22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS
22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS
+22F2; 22FA # ELEMENT OF WITH LONG HORIZONTAL STROKE
+22F3; 22FB # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F4; 22FC # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F6; 22FD # ELEMENT OF WITH OVERBAR
+22F7; 22FE # SMALL ELEMENT OF WITH OVERBAR
+22FA; 22F2 # CONTAINS WITH LONG HORIZONTAL STROKE
+22FB; 22F3 # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FC; 22F4 # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FD; 22F6 # CONTAINS WITH OVERBAR
+22FE; 22F7 # SMALL CONTAINS WITH OVERBAR
2308; 2309 # LEFT CEILING
2309; 2308 # RIGHT CEILING
230A; 230B # LEFT FLOOR
230B; 230A # RIGHT FLOOR
2329; 232A # LEFT-POINTING ANGLE BRACKET
232A; 2329 # RIGHT-POINTING ANGLE BRACKET
+2768; 2769 # MEDIUM LEFT PARENTHESIS ORNAMENT
+2769; 2768 # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A; 276B # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B; 276A # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C; 276D # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D; 276C # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E; 276F # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET
+2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET
+2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+27D5; 27D6 # LEFT OUTER JOIN
+27D6; 27D5 # RIGHT OUTER JOIN
+27DD; 27DE # LONG RIGHT TACK
+27DE; 27DD # LONG LEFT TACK
+27E2; 27E3 # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+27E3; 27E2 # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+27E4; 27E5 # WHITE SQUARE WITH LEFTWARDS TICK
+27E5; 27E4 # WHITE SQUARE WITH RIGHTWARDS TICK
+27E6; 27E7 # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7; 27E6 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8; 27E9 # MATHEMATICAL LEFT ANGLE BRACKET
+27E9; 27E8 # MATHEMATICAL RIGHT ANGLE BRACKET
+27EA; 27EB # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB; 27EA # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+2983; 2984 # LEFT WHITE CURLY BRACKET
+2984; 2983 # RIGHT WHITE CURLY BRACKET
+2985; 2986 # LEFT WHITE PARENTHESIS
+2986; 2985 # RIGHT WHITE PARENTHESIS
+2987; 2988 # Z NOTATION LEFT IMAGE BRACKET
+2988; 2987 # Z NOTATION RIGHT IMAGE BRACKET
+2989; 298A # Z NOTATION LEFT BINDING BRACKET
+298A; 2989 # Z NOTATION RIGHT BINDING BRACKET
+298B; 298C # LEFT SQUARE BRACKET WITH UNDERBAR
+298C; 298B # RIGHT SQUARE BRACKET WITH UNDERBAR
+298D; 2990 # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E; 298F # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F; 298E # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990; 298D # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991; 2992 # LEFT ANGLE BRACKET WITH DOT
+2992; 2991 # RIGHT ANGLE BRACKET WITH DOT
+2993; 2994 # LEFT ARC LESS-THAN BRACKET
+2994; 2993 # RIGHT ARC GREATER-THAN BRACKET
+2995; 2996 # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996; 2995 # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997; 2998 # LEFT BLACK TORTOISE SHELL BRACKET
+2998; 2997 # RIGHT BLACK TORTOISE SHELL BRACKET
+29B8; 2298 # CIRCLED REVERSE SOLIDUS
+29C0; 29C1 # CIRCLED LESS-THAN
+29C1; 29C0 # CIRCLED GREATER-THAN
+29C4; 29C5 # SQUARED RISING DIAGONAL SLASH
+29C5; 29C4 # SQUARED FALLING DIAGONAL SLASH
+29CF; 29D0 # LEFT TRIANGLE BESIDE VERTICAL BAR
+29D0; 29CF # VERTICAL BAR BESIDE RIGHT TRIANGLE
+29D1; 29D2 # BOWTIE WITH LEFT HALF BLACK
+29D2; 29D1 # BOWTIE WITH RIGHT HALF BLACK
+29D4; 29D5 # TIMES WITH LEFT HALF BLACK
+29D5; 29D4 # TIMES WITH RIGHT HALF BLACK
+29D8; 29D9 # LEFT WIGGLY FENCE
+29D9; 29D8 # RIGHT WIGGLY FENCE
+29DA; 29DB # LEFT DOUBLE WIGGLY FENCE
+29DB; 29DA # RIGHT DOUBLE WIGGLY FENCE
+29F5; 2215 # REVERSE SOLIDUS OPERATOR
+29F8; 29F9 # BIG SOLIDUS
+29F9; 29F8 # BIG REVERSE SOLIDUS
+29FC; 29FD # LEFT-POINTING CURVED ANGLE BRACKET
+29FD; 29FC # RIGHT-POINTING CURVED ANGLE BRACKET
+2A2B; 2A2C # MINUS SIGN WITH FALLING DOTS
+2A2C; 2A2B # MINUS SIGN WITH RISING DOTS
+2A2D; 2A2C # PLUS SIGN IN LEFT HALF CIRCLE
+2A2E; 2A2D # PLUS SIGN IN RIGHT HALF CIRCLE
+2A34; 2A35 # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+2A35; 2A34 # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+2A3C; 2A3D # INTERIOR PRODUCT
+2A3D; 2A3C # RIGHTHAND INTERIOR PRODUCT
+2A64; 2A65 # Z NOTATION DOMAIN ANTIRESTRICTION
+2A65; 2A64 # Z NOTATION RANGE ANTIRESTRICTION
+2A79; 2A7A # LESS-THAN WITH CIRCLE INSIDE
+2A7A; 2A79 # GREATER-THAN WITH CIRCLE INSIDE
+2A7D; 2A7E # LESS-THAN OR SLANTED EQUAL TO
+2A7E; 2A7D # GREATER-THAN OR SLANTED EQUAL TO
+2A7F; 2A80 # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A80; 2A7F # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A81; 2A82 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A82; 2A81 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A83; 2A84 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+2A84; 2A83 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+2A8B; 2A8C # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+2A8C; 2A8B # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+2A91; 2A92 # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+2A92; 2A91 # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+2A93; 2A94 # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+2A94; 2A93 # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+2A95; 2A96 # SLANTED EQUAL TO OR LESS-THAN
+2A96; 2A95 # SLANTED EQUAL TO OR GREATER-THAN
+2A97; 2A98 # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+2A98; 2A97 # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+2A99; 2A9A # DOUBLE-LINE EQUAL TO OR LESS-THAN
+2A9A; 2A99 # DOUBLE-LINE EQUAL TO OR GREATER-THAN
+2A9B; 2A9C # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+2A9C; 2A9B # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+2AA1; 2AA2 # DOUBLE NESTED LESS-THAN
+2AA2; 2AA1 # DOUBLE NESTED GREATER-THAN
+2AA6; 2AA7 # LESS-THAN CLOSED BY CURVE
+2AA7; 2AA6 # GREATER-THAN CLOSED BY CURVE
+2AA8; 2AA9 # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AA9; 2AA8 # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AAA; 2AAB # SMALLER THAN
+2AAB; 2AAA # LARGER THAN
+2AAC; 2AAD # SMALLER THAN OR EQUAL TO
+2AAD; 2AAC # LARGER THAN OR EQUAL TO
+2AAF; 2AB0 # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+2AB0; 2AAF # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+2AB3; 2AB4 # PRECEDES ABOVE EQUALS SIGN
+2AB4; 2AB3 # SUCCEEDS ABOVE EQUALS SIGN
+2ABB; 2ABC # DOUBLE PRECEDES
+2ABC; 2ABB # DOUBLE SUCCEEDS
+2ABD; 2ABE # SUBSET WITH DOT
+2ABE; 2ABD # SUPERSET WITH DOT
+2ABF; 2AC0 # SUBSET WITH PLUS SIGN BELOW
+2AC0; 2ABF # SUPERSET WITH PLUS SIGN BELOW
+2AC1; 2AC2 # SUBSET WITH MULTIPLICATION SIGN BELOW
+2AC2; 2AC1 # SUPERSET WITH MULTIPLICATION SIGN BELOW
+2AC3; 2AC4 # SUBSET OF OR EQUAL TO WITH DOT ABOVE
+2AC4; 2AC3 # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+2AC5; 2AC6 # SUBSET OF ABOVE EQUALS SIGN
+2AC6; 2AC5 # SUPERSET OF ABOVE EQUALS SIGN
+2ACD; 2ACE # SQUARE LEFT OPEN BOX OPERATOR
+2ACE; 2ACD # SQUARE RIGHT OPEN BOX OPERATOR
+2ACF; 2AD0 # CLOSED SUBSET
+2AD0; 2ACF # CLOSED SUPERSET
+2AD1; 2AD2 # CLOSED SUBSET OR EQUAL TO
+2AD2; 2AD1 # CLOSED SUPERSET OR EQUAL TO
+2AD3; 2AD4 # SUBSET ABOVE SUPERSET
+2AD4; 2AD3 # SUPERSET ABOVE SUBSET
+2AD5; 2AD6 # SUBSET ABOVE SUBSET
+2AD6; 2AD5 # SUPERSET ABOVE SUPERSET
+2ADE; 22A6 # SHORT LEFT TACK
+2AE3; 22A9 # DOUBLE VERTICAL BAR LEFT TURNSTILE
+2AE4; 22A8 # VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE5; 22AB # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AEC; 2AED # DOUBLE STROKE NOT SIGN
+2AED; 2AEC # REVERSED DOUBLE STROKE NOT SIGN
+2AF7; 2AF8 # TRIPLE NESTED LESS-THAN
+2AF8; 2AF7 # TRIPLE NESTED GREATER-THAN
+2AF9; 2AFA # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+2AFA; 2AF9 # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
3008; 3009 # LEFT ANGLE BRACKET
3009; 3008 # RIGHT ANGLE BRACKET
300A; 300B # LEFT DOUBLE ANGLE BRACKET
@@ -163,23 +330,35 @@
300F; 300E # [BEST FIT] RIGHT WHITE CORNER BRACKET
3010; 3011 # LEFT BLACK LENTICULAR BRACKET
3011; 3010 # RIGHT BLACK LENTICULAR BRACKET
-3014; 3015 # [BEST FIT] LEFT TORTOISE SHELL BRACKET
-3015; 3014 # [BEST FIT] RIGHT TORTOISE SHELL BRACKET
+3014; 3015 # LEFT TORTOISE SHELL BRACKET
+3015; 3014 # RIGHT TORTOISE SHELL BRACKET
3016; 3017 # LEFT WHITE LENTICULAR BRACKET
3017; 3016 # RIGHT WHITE LENTICULAR BRACKET
3018; 3019 # LEFT WHITE TORTOISE SHELL BRACKET
3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET
301A; 301B # LEFT WHITE SQUARE BRACKET
301B; 301A # RIGHT WHITE SQUARE BRACKET
+FF08; FF09 # FULLWIDTH LEFT PARENTHESIS
+FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS
+FF1C; FF1E # FULLWIDTH LESS-THAN SIGN
+FF1E; FF1C # FULLWIDTH GREATER-THAN SIGN
+FF3B; FF3D # FULLWIDTH LEFT SQUARE BRACKET
+FF3D; FF3B # FULLWIDTH RIGHT SQUARE BRACKET
+FF5B; FF5D # FULLWIDTH LEFT CURLY BRACKET
+FF5D; FF5B # FULLWIDTH RIGHT CURLY BRACKET
+FF5F; FF60 # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60; FF5F # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF62; FF63 # [BEST FIT] HALFWIDTH LEFT CORNER BRACKET
+FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET
# The following characters have no appropriate mirroring character
+# 2140; DOUBLE-STRUCK N-ARY SUMMATION
# 2201; COMPLEMENT
# 2202; PARTIAL DIFFERENTIAL
# 2203; THERE EXISTS
# 2204; THERE DOES NOT EXIST
# 2211; N-ARY SUMMATION
-# 2215; DIVISION SLASH
# 2216; SET MINUS
# 221A; SQUARE ROOT
# 221B; CUBE ROOT
@@ -220,13 +399,8 @@
# 2260; NOT EQUAL TO
# 2262; NOT IDENTICAL TO
# 228C; MULTISET
-# 2298; CIRCLED DIVISION SLASH
-# 22A6; ASSERTION
# 22A7; MODELS
-# 22A8; TRUE
-# 22A9; FORCES
# 22AA; TRIPLE VERTICAL BAR RIGHT TURNSTILE
-# 22AB; DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
# 22AC; DOES NOT PROVE
# 22AD; NOT TRUE
# 22AE; DOES NOT FORCE
@@ -234,5 +408,122 @@
# 22B8; MULTIMAP
# 22BE; RIGHT ANGLE WITH ARC
# 22BF; RIGHT TRIANGLE
+# 22F5; ELEMENT OF WITH DOT ABOVE
+# 22F8; ELEMENT OF WITH UNDERBAR
+# 22F9; ELEMENT OF WITH TWO HORIZONTAL STROKES
+# 22FF; Z NOTATION BAG MEMBERSHIP
# 2320; TOP HALF INTEGRAL
# 2321; BOTTOM HALF INTEGRAL
+# 27D3; LOWER RIGHT CORNER WITH DOT
+# 27D4; UPPER LEFT CORNER WITH DOT
+# 27DC; LEFT MULTIMAP
+# 299B; MEASURED ANGLE OPENING LEFT
+# 299C; RIGHT ANGLE VARIANT WITH SQUARE
+# 299D; MEASURED RIGHT ANGLE WITH DOT
+# 299E; ANGLE WITH S INSIDE
+# 299F; ACUTE ANGLE
+# 29A0; SPHERICAL ANGLE OPENING LEFT
+# 29A1; SPHERICAL ANGLE OPENING UP
+# 29A2; TURNED ANGLE
+# 29A3; REVERSED ANGLE
+# 29A4; ANGLE WITH UNDERBAR
+# 29A5; REVERSED ANGLE WITH UNDERBAR
+# 29A6; OBLIQUE ANGLE OPENING UP
+# 29A7; OBLIQUE ANGLE OPENING DOWN
+# 29A8; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+# 29A9; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+# 29AA; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+# 29AB; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+# 29AC; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+# 29AD; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+# 29AE; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+# 29AF; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+# 29C2; CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+# 29C3; CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+# 29C9; TWO JOINED SQUARES
+# 29CE; RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+# 29DC; INCOMPLETE INFINITY
+# 29E1; INCREASES AS
+# 29E3; EQUALS SIGN AND SLANTED PARALLEL
+# 29E4; EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+# 29E5; IDENTICAL TO AND SLANTED PARALLEL
+# 29E8; DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+# 29E9; DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+# 29F4; RULE-DELAYED
+# 29F6; SOLIDUS WITH OVERBAR
+# 29F7; REVERSE SOLIDUS WITH HORIZONTAL STROKE
+# 2A0A; MODULO TWO SUM
+# 2A0B; SUMMATION WITH INTEGRAL
+# 2A0C; QUADRUPLE INTEGRAL OPERATOR
+# 2A0D; FINITE PART INTEGRAL
+# 2A0E; INTEGRAL WITH DOUBLE STROKE
+# 2A0F; INTEGRAL AVERAGE WITH SLASH
+# 2A10; CIRCULATION FUNCTION
+# 2A11; ANTICLOCKWISE INTEGRATION
+# 2A12; LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+# 2A13; LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+# 2A14; LINE INTEGRATION NOT INCLUDING THE POLE
+# 2A15; INTEGRAL AROUND A POINT OPERATOR
+# 2A16; QUATERNION INTEGRAL OPERATOR
+# 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+# 2A18; INTEGRAL WITH TIMES SIGN
+# 2A19; INTEGRAL WITH INTERSECTION
+# 2A1A; INTEGRAL WITH UNION
+# 2A1B; INTEGRAL WITH OVERBAR
+# 2A1C; INTEGRAL WITH UNDERBAR
+# 2A1E; LARGE LEFT TRIANGLE OPERATOR
+# 2A1F; Z NOTATION SCHEMA COMPOSITION
+# 2A20; Z NOTATION SCHEMA PIPING
+# 2A21; Z NOTATION SCHEMA PROJECTION
+# 2A24; PLUS SIGN WITH TILDE ABOVE
+# 2A26; PLUS SIGN WITH TILDE BELOW
+# 2A29; MINUS SIGN WITH COMMA ABOVE
+# 2A3E; Z NOTATION RELATIONAL COMPOSITION
+# 2A57; SLOPING LARGE OR
+# 2A58; SLOPING LARGE AND
+# 2A6A; TILDE OPERATOR WITH DOT ABOVE
+# 2A6B; TILDE OPERATOR WITH RISING DOTS
+# 2A6C; SIMILAR MINUS SIMILAR
+# 2A6D; CONGRUENT WITH DOT ABOVE
+# 2A6F; ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+# 2A70; APPROXIMATELY EQUAL OR EQUAL TO
+# 2A73; EQUALS SIGN ABOVE TILDE OPERATOR
+# 2A74; DOUBLE COLON EQUAL
+# 2A7B; LESS-THAN WITH QUESTION MARK ABOVE
+# 2A7C; GREATER-THAN WITH QUESTION MARK ABOVE
+# 2A85; LESS-THAN OR APPROXIMATE
+# 2A86; GREATER-THAN OR APPROXIMATE
+# 2A87; LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+# 2A88; GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+# 2A89; LESS-THAN AND NOT APPROXIMATE
+# 2A8A; GREATER-THAN AND NOT APPROXIMATE
+# 2A8D; LESS-THAN ABOVE SIMILAR OR EQUAL
+# 2A8E; GREATER-THAN ABOVE SIMILAR OR EQUAL
+# 2A8F; LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+# 2A90; GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+# 2A9D; SIMILAR OR LESS-THAN
+# 2A9E; SIMILAR OR GREATER-THAN
+# 2A9F; SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+# 2AA0; SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+# 2AA3; DOUBLE NESTED LESS-THAN WITH UNDERBAR
+# 2AB1; PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+# 2AB2; SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+# 2AB5; PRECEDES ABOVE NOT EQUAL TO
+# 2AB6; SUCCEEDS ABOVE NOT EQUAL TO
+# 2AB7; PRECEDES ABOVE ALMOST EQUAL TO
+# 2AB8; SUCCEEDS ABOVE ALMOST EQUAL TO
+# 2AB9; PRECEDES ABOVE NOT ALMOST EQUAL TO
+# 2ABA; SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+# 2AC7; SUBSET OF ABOVE TILDE OPERATOR
+# 2AC8; SUPERSET OF ABOVE TILDE OPERATOR
+# 2AC9; SUBSET OF ABOVE ALMOST EQUAL TO
+# 2ACA; SUPERSET OF ABOVE ALMOST EQUAL TO
+# 2ACB; SUBSET OF ABOVE NOT EQUAL TO
+# 2ACC; SUPERSET OF ABOVE NOT EQUAL TO
+# 2ADC; FORKING
+# 2AE2; VERTICAL BAR TRIPLE RIGHT TURNSTILE
+# 2AE6; LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+# 2AEE; DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+# 2AF3; PARALLEL WITH TILDE OPERATOR
+# 2AFB; TRIPLE SOLIDUS BINARY RELATION
+# 2AFD; DOUBLE SOLIDUS OPERATOR
diff --git a/unidata/UnicodeData.txt b/unidata/UnicodeData.txt
index 90f047a..125a692 100644
--- a/unidata/UnicodeData.txt
+++ b/unidata/UnicodeData.txt
@@ -7,11 +7,11 @@
0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
-0009;<control>;Cc;0;S;;;;;N;HORIZONTAL TABULATION;;;;
-000A;<control>;Cc;0;B;;;;;N;LINE FEED;;;;
-000B;<control>;Cc;0;S;;;;;N;VERTICAL TABULATION;;;;
-000C;<control>;Cc;0;WS;;;;;N;FORM FEED;;;;
-000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN;;;;
+0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;;
+000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;
+000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;
+000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;;
+000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;;
000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
@@ -26,10 +26,10 @@
0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
-001C;<control>;Cc;0;B;;;;;N;FILE SEPARATOR;;;;
-001D;<control>;Cc;0;B;;;;;N;GROUP SEPARATOR;;;;
-001E;<control>;Cc;0;B;;;;;N;RECORD SEPARATOR;;;;
-001F;<control>;Cc;0;S;;;;;N;UNIT SEPARATOR;;;;
+001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;;
+001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;;
+001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;;
+001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;;
0020;SPACE;Zs;0;WS;;;;;N;;;;;
0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
@@ -131,14 +131,14 @@
0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
0084;<control>;Cc;0;BN;;;;;N;;;;;
-0085;<control>;Cc;0;B;;;;;N;NEXT LINE;;;;
+0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;;
0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
-008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE DOWN;;;;
-008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE UP;;;;
+008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;;
+008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;;
008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
@@ -412,7 +412,7 @@
019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
-019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;;;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
@@ -542,6 +542,7 @@
021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;
0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
@@ -718,7 +719,7 @@
02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
-0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;;
0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
@@ -730,7 +731,7 @@
030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
-030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;Tonos;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;
030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
@@ -796,9 +797,23 @@
034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;
0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;
+0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;
+0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;
+0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;
+0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;
+0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;
+0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;
+036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;
+036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;
+036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;
+036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;
+036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;
+036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;
0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
@@ -883,6 +898,8 @@
03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;
+03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;
+03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8
03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
@@ -911,6 +928,7 @@
03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
+03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
@@ -1048,6 +1066,8 @@
0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;
+048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A
048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
@@ -1105,10 +1125,16 @@
04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;
+04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5
04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;
+04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9
04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
+04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
@@ -1149,6 +1175,22 @@
04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
+0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
+0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
+0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502
+0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;
+0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504
+0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;
+0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506
+0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;
+0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508
+050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;
+050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A
+050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;
+050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
+050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
+050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
@@ -1382,6 +1424,8 @@
066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
+066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
@@ -1491,7 +1535,7 @@
06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
-06DD;ARABIC END OF AYAH;Me;0;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;
06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
@@ -1643,6 +1687,7 @@
07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2069,7 +2114,7 @@
0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-0B83;TAMIL SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
@@ -2947,6 +2992,8 @@
10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
+10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
@@ -4358,6 +4405,87 @@
16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;;
16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;;
16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;;
+1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
+1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
+1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
+1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;
+1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;
+1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;
+1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;
+1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;
+1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;
+1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;
+170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
+170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
+170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
+170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
+170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
+1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
+1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;
+1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
+1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
+1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
+1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;
+1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;
+1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;
+1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;
+1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;
+1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;
+172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;
+172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;
+172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;
+172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;
+172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;
+172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;
+1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;
+1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
+1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
+1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
+1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;
+1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;
+1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;
+1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;
+1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;
+1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;
+1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;
+1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;
+1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;
+174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;
+174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;
+174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;
+174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;
+174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;
+174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;
+1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;
+1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;
+1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;
+1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;
+1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;
+1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;
+1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;
+1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;
+1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;
+1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;
+1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;
+176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;
+176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;
+176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;
+176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;
+176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;
+1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;
+1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
@@ -4445,12 +4573,12 @@
17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
-17D7;KHMER SIGN LEK TOO;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;
17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;;
17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
-17DC;KHMER SIGN AVAKRAHASANYA;Po;0;L;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;
17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -4472,9 +4600,9 @@
1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
-180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Cf;0;BN;;;;;N;;;;;
-180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Cf;0;BN;;;;;N;;;;;
-180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Cf;0;BN;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
@@ -5166,12 +5294,24 @@
2044;FRACTION SLASH;Sm;0;ON;;;;;N;;;;;
2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;
2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;
+204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2050;CLOSE UP;Po;0;ON;;;;;N;;;;;
+2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;
+2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;
+205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;
+2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;
+2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
+2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
@@ -5179,6 +5319,7 @@
206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;0;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L;<super> 0069;;;;N;;;;;
2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;4;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;5;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;6;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
@@ -5222,6 +5363,8 @@
20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;
+20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;
20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
@@ -5242,6 +5385,13 @@
20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;
+20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;
+20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;
+20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
@@ -5301,6 +5451,21 @@
2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;
+2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;
+2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;
+2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
+214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
@@ -5450,6 +5615,18 @@
21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
+21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
@@ -5692,6 +5869,20 @@
22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;
+22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;
2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
2302;HOUSE;So;0;ON;;;;;N;;;;;
@@ -5816,6 +6007,7 @@
2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;
237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
@@ -5846,6 +6038,58 @@
2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;
+23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
+23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
+23B4;TOP SQUARE BRACKET;Ps;0;ON;;;;;N;;;;;
+23B5;BOTTOM SQUARE BRACKET;Pe;0;ON;;;;;N;;;;;
+23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;Po;0;ON;;;;;N;;;;;
+23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
+23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;
+23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;
+23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;
+23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;
+23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
+23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;
+23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
+23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;
+23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;
2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
@@ -6035,6 +6279,26 @@
24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
24EA;CIRCLED DIGIT ZERO;No;0;EN;<circle> 0030;;0;0;N;;;;;
+24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;
+24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;
+24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;
+24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;
+24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;
+24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;
+24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;
+24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;
+24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;
+24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
+24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;
+24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;
+24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;
+24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;
+24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;
+24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;
+24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;
+24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;
+24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;
+24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;
2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
@@ -6185,6 +6449,16 @@
2593;DARK SHADE;So;0;ON;;;;;N;;;;;
2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;
+2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;
+2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;
+259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
@@ -6273,6 +6547,14 @@
25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
2601;CLOUD;So;0;ON;;;;;N;;;;;
2602;UMBRELLA;So;0;ON;;;;;N;;;;;
@@ -6293,6 +6575,8 @@
2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
@@ -6382,6 +6666,28 @@
266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;;
+2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;;
+2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;;
+2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;;
+2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;;
+2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;;
+2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;;
+267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;
+267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+2680;DIE FACE-1;So;0;ON;;;;;N;;;;;
+2681;DIE FACE-2;So;0;ON;;;;;N;;;;;
+2682;DIE FACE-3;So;0;ON;;;;;N;;;;;
+2683;DIE FACE-4;So;0;ON;;;;;N;;;;;
+2684;DIE FACE-5;So;0;ON;;;;;N;;;;;
+2685;DIE FACE-6;So;0;ON;;;;;N;;;;;
+2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;
+2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
+2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;
+2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;
2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
@@ -6473,6 +6779,20 @@
2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
@@ -6542,6 +6862,50 @@
27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
+27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
+27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
+27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;
+27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;
+27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;
+27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;
+27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;
+27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;
+27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
2800;BRAILLE PATTERN BLANK;So;0;ON;;;;;N;;;;;
2801;BRAILLE PATTERN DOTS-1;So;0;ON;;;;;N;;;;;
2802;BRAILLE PATTERN DOTS-2;So;0;ON;;;;;N;;;;;
@@ -6798,6 +7162,518 @@
28FD;BRAILLE PATTERN DOTS-1345678;So;0;ON;;;;;N;;;;;
28FE;BRAILLE PATTERN DOTS-2345678;So;0;ON;;;;;N;;;;;
28FF;BRAILLE PATTERN DOTS-12345678;So;0;ON;;;;;N;;;;;
+2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
+2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
+2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;
+2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;
+2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;
+2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;
+2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;
+293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;
+293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;
+2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;
+297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;
+2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;
+2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;
+2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;
+2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;
+2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;
+2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;
+2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;
+2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;
+298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;
+298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;
+298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;
+298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;
+298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;
+298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;
+2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;
+2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;
+2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;
+2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
+2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
+2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;
+299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;
+299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;
+299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;
+299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
+299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;
+29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;
+29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;
+29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;
+29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;
+29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;
+29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;
+29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;
+29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;
+29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;
+29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;
+29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;
+29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;
+29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;
+29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;
+29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;
+29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;
+29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;
+29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;
+29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;
+29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;
+29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;
+29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;
+29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;
+29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;
+29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;
+29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+29FE;TINY;Sm;0;ON;;;;;N;;;;;
+29FF;MINY;Sm;0;ON;;;;;N;;;;;
+2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;
+2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;
+2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;
+2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;
+2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;
+2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;
+2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;
+2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;
+2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;
+2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;
+2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;
+2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;
+2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1D;JOIN;Sm;0;ON;;;;;N;;;;;
+2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;
+2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;
+2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;
+2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;
+2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;
+2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;
+2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;
+2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;
+2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;
+2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;
+2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;
+2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;
+2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;
+2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;
+2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;
+2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;
+2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;
+2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;
+2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;
+2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;
+2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;
+2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;
+2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;
+2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;
+2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;;
+2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;;
+2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;
+2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;
+2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;
+2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;
+2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;
+2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;
+2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;
+2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -7198,6 +8074,9 @@
3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+303C;MASU MARK;Lo;0;L;;;;;N;;;;;
+303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;
303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
@@ -7284,12 +8163,16 @@
3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;
+30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
@@ -7384,6 +8267,7 @@
30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;
3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
@@ -7558,6 +8442,22 @@
31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
+31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
+31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
+31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;
+31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;
+31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;
+31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;
+31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;
+31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;
+31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;
+31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;
+31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;
+31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;
+31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;
+31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;
+31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;
3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
@@ -7623,6 +8523,21 @@
3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
+3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
+3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;
+3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;
+3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;
+3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;
+3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;
+3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;
+3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;
+325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;
+325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;
+325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;
+325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;
+325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;
+325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;
3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
@@ -7701,6 +8616,21 @@
32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;
+32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;
+32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;
+32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;
+32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;
+32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;
+32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;
+32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;
+32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;
+32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;
+32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;
+32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;
+32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;
+32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;
+32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;
32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
@@ -9196,6 +10126,8 @@ A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;
+A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;
A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
@@ -9212,6 +10144,7 @@ A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;
A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
@@ -9224,9 +10157,11 @@ A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;
A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;
A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
@@ -9319,7 +10254,7 @@ F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
-F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;96FB;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;
F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
@@ -9540,6 +10475,65 @@ FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
+FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
+FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
+FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;
+FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;
+FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;
+FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;
+FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;
+FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;
+FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;
+FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;
+FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;
+FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;
+FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;
+FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;
+FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;
+FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;
+FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
+FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;
+FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;
+FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;
+FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;
+FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;
+FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;
+FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;
+FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;
+FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;
+FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;
+FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;
+FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;
+FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;
+FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;
+FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;
+FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;
+FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;
+FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;
+FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;
+FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;
+FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;
+FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;
+FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;
+FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;
+FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;
+FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;
+FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;
+FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;
+FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;
+FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;
+FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;
+FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;
+FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;
+FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;
+FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;
+FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;
+FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;
+FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;
+FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;
+FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;
+FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;
FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
@@ -10191,6 +11185,23 @@ FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 06
FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
+FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
+FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
+FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
+FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
+FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
+FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
+FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
+FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
+FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
+FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
+FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
+FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
+FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
+FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
+FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
+FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
@@ -10216,6 +11227,8 @@ FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;
FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
@@ -10252,6 +11265,7 @@ FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
@@ -10396,8 +11410,8 @@ FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
-FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;N;FULLWIDTH OPENING PARENTHESIS;;;;
-FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;N;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;
FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
FF0B;FULLWIDTH PLUS SIGN;Sm;0;ET;<wide> 002B;;;;N;;;;;
FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
@@ -10416,9 +11430,9 @@ FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
-FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;
FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
-FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;
FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
@@ -10447,9 +11461,9 @@ FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
-FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;N;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;
FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
-FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;N;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;
FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
@@ -10479,13 +11493,15 @@ FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
-FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;N;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;
FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
-FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;N;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;
FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;*;;;
+FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;*;;;
FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
-FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;N;HALFWIDTH OPENING CORNER BRACKET;;;;
-FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;N;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;
FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
FF65;HALFWIDTH KATAKANA MIDDLE DOT;Pc;0;ON;<narrow> 30FB;;;;N;;;;;
FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;