summaryrefslogtreecommitdiff
path: root/unidata
diff options
context:
space:
mode:
authorbehdad <behdad>2001-02-19 17:22:11 +0000
committerbehdad <behdad>2001-02-19 17:22:11 +0000
commitb20eaeeafbd5f8595ef4ac02cd7311c60cd45a26 (patch)
treec4036306e9af93dd6dc80fe161a5e3541a095d40 /unidata
parent81388a9ef058e2acd63b9ff51296cef35d2aba75 (diff)
Comitted all the changes made by the FarsiWeb project.
Diffstat (limited to 'unidata')
-rw-r--r--unidata/BidiMirroring.txt238
-rwxr-xr-xunidata/CreateGetType.pl373
-rw-r--r--unidata/PropList.txt3592
3 files changed, 4203 insertions, 0 deletions
diff --git a/unidata/BidiMirroring.txt b/unidata/BidiMirroring.txt
new file mode 100644
index 0000000..8ac5be9
--- /dev/null
+++ b/unidata/BidiMirroring.txt
@@ -0,0 +1,238 @@
+# BidiMirroring-1.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 file contains a list of lines with mappings from one code point
+# to another one for character-based mirroring.
+# Note that for "real" mirroring, a rendering engine needs to select
+# appropriate alternative glyphs, and that many Unicode characters do not
+# have a mirror-image Unicode character.
+#
+# Each mapping line contains two fields, separated by a semicolon (';').
+# Each of the two fields contains a code point represented as a
+# variable-length hexadecimal value with 4 to 6 digits.
+# A comment indicates where the characters are "BEST FIT" mirroring.
+#
+# 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,
+# 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
+#
+# ############################################################
+
+0028; 0029 # LEFT PARENTHESIS
+0029; 0028 # RIGHT PARENTHESIS
+003C; 003E # LESS-THAN SIGN
+003E; 003C # GREATER-THAN SIGN
+005B; 005D # LEFT SQUARE BRACKET
+005D; 005B # RIGHT SQUARE BRACKET
+007B; 007D # LEFT CURLY BRACKET
+007D; 007B # RIGHT CURLY BRACKET
+00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+2045; 2046 # LEFT SQUARE BRACKET WITH QUILL
+2046; 2045 # RIGHT SQUARE BRACKET WITH QUILL
+207D; 207E # SUPERSCRIPT LEFT PARENTHESIS
+207E; 207D # SUPERSCRIPT RIGHT PARENTHESIS
+208D; 208E # SUBSCRIPT LEFT PARENTHESIS
+208E; 208D # SUBSCRIPT RIGHT PARENTHESIS
+2208; 220B # ELEMENT OF
+2209; 220C # NOT AN ELEMENT OF
+220A; 220D # SMALL ELEMENT OF
+220B; 2208 # CONTAINS AS MEMBER
+220C; 2209 # DOES NOT CONTAIN AS MEMBER
+220D; 220A # SMALL CONTAINS AS MEMBER
+223C; 223D # TILDE OPERATOR
+223D; 223C # REVERSED TILDE
+2243; 22CD # ASYMPTOTICALLY EQUAL TO
+2252; 2253 # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253; 2252 # IMAGE OF OR APPROXIMATELY EQUAL TO
+2254; 2255 # COLON EQUALS
+2255; 2254 # EQUALS COLON
+2264; 2265 # LESS-THAN OR EQUAL TO
+2265; 2264 # GREATER-THAN OR EQUAL TO
+2266; 2267 # LESS-THAN OVER EQUAL TO
+2267; 2266 # GREATER-THAN OVER EQUAL TO
+2268; 2269 # [BEST FIT] LESS-THAN BUT NOT EQUAL TO
+2269; 2268 # [BEST FIT] GREATER-THAN BUT NOT EQUAL TO
+226A; 226B # MUCH LESS-THAN
+226B; 226A # MUCH GREATER-THAN
+226E; 226F # [BEST FIT] NOT LESS-THAN
+226F; 226E # [BEST FIT] NOT GREATER-THAN
+2270; 2271 # [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO
+2271; 2270 # [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO
+2272; 2273 # [BEST FIT] LESS-THAN OR EQUIVALENT TO
+2273; 2272 # [BEST FIT] GREATER-THAN OR EQUIVALENT TO
+2274; 2275 # [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO
+2275; 2274 # [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276; 2277 # LESS-THAN OR GREATER-THAN
+2277; 2276 # GREATER-THAN OR LESS-THAN
+2278; 2279 # NEITHER LESS-THAN NOR GREATER-THAN
+2279; 2278 # NEITHER GREATER-THAN NOR LESS-THAN
+227A; 227B # PRECEDES
+227B; 227A # SUCCEEDS
+227C; 227D # PRECEDES OR EQUAL TO
+227D; 227C # SUCCEEDS OR EQUAL TO
+227E; 227F # [BEST FIT] PRECEDES OR EQUIVALENT TO
+227F; 227E # [BEST FIT] SUCCEEDS OR EQUIVALENT TO
+2280; 2281 # [BEST FIT] DOES NOT PRECEDE
+2281; 2280 # [BEST FIT] DOES NOT SUCCEED
+2282; 2283 # SUBSET OF
+2283; 2282 # SUPERSET OF
+2284; 2285 # [BEST FIT] NOT A SUBSET OF
+2285; 2284 # [BEST FIT] NOT A SUPERSET OF
+2286; 2287 # SUBSET OF OR EQUAL TO
+2287; 2286 # SUPERSET OF OR EQUAL TO
+2288; 2289 # [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO
+2289; 2288 # [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO
+228A; 228B # [BEST FIT] SUBSET OF WITH NOT EQUAL TO
+228B; 228A # [BEST FIT] SUPERSET OF WITH NOT EQUAL TO
+228F; 2290 # SQUARE IMAGE OF
+2290; 228F # SQUARE ORIGINAL OF
+2291; 2292 # SQUARE IMAGE OF OR EQUAL TO
+2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO
+22A2; 22A3 # RIGHT TACK
+22A3; 22A2 # LEFT TACK
+22B0; 22B1 # PRECEDES UNDER RELATION
+22B1; 22B0 # SUCCEEDS UNDER RELATION
+22B2; 22B3 # NORMAL SUBGROUP OF
+22B3; 22B2 # CONTAINS AS NORMAL SUBGROUP
+22B4; 22B5 # NORMAL SUBGROUP OF OR EQUAL TO
+22B5; 22B4 # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6; 22B7 # ORIGINAL OF
+22B7; 22B6 # IMAGE OF
+22C9; 22CA # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA; 22C9 # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB; 22CC # LEFT SEMIDIRECT PRODUCT
+22CC; 22CB # RIGHT SEMIDIRECT PRODUCT
+22CD; 2243 # REVERSED TILDE EQUALS
+22D0; 22D1 # DOUBLE SUBSET
+22D1; 22D0 # DOUBLE SUPERSET
+22D6; 22D7 # LESS-THAN WITH DOT
+22D7; 22D6 # GREATER-THAN WITH DOT
+22D8; 22D9 # VERY MUCH LESS-THAN
+22D9; 22D8 # VERY MUCH GREATER-THAN
+22DA; 22DB # LESS-THAN EQUAL TO OR GREATER-THAN
+22DB; 22DA # GREATER-THAN EQUAL TO OR LESS-THAN
+22DC; 22DD # EQUAL TO OR LESS-THAN
+22DD; 22DC # EQUAL TO OR GREATER-THAN
+22DE; 22DF # EQUAL TO OR PRECEDES
+22DF; 22DE # EQUAL TO OR SUCCEEDS
+22E0; 22E1 # [BEST FIT] DOES NOT PRECEDE OR EQUAL
+22E1; 22E0 # [BEST FIT] DOES NOT SUCCEED OR EQUAL
+22E2; 22E3 # [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO
+22E3; 22E2 # [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4; 22E5 # [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO
+22E5; 22E4 # [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6; 22E7 # [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO
+22E7; 22E6 # [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO
+22E8; 22E9 # [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO
+22E9; 22E8 # [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO
+22EA; 22EB # [BEST FIT] NOT NORMAL SUBGROUP OF
+22EB; 22EA # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC; 22ED # [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS
+22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS
+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
+3008; 3009 # LEFT ANGLE BRACKET
+3009; 3008 # RIGHT ANGLE BRACKET
+300A; 300B # LEFT DOUBLE ANGLE BRACKET
+300B; 300A # RIGHT DOUBLE ANGLE BRACKET
+300C; 300D # [BEST FIT] LEFT CORNER BRACKET
+300D; 300C # [BEST FIT] RIGHT CORNER BRACKET
+300E; 300F # [BEST FIT] LEFT WHITE CORNER BRACKET
+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
+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
+
+# The following characters have no appropriate mirroring character
+
+# 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
+# 221C; FOURTH ROOT
+# 221D; PROPORTIONAL TO
+# 221F; RIGHT ANGLE
+# 2220; ANGLE
+# 2221; MEASURED ANGLE
+# 2222; SPHERICAL ANGLE
+# 2224; DOES NOT DIVIDE
+# 2226; NOT PARALLEL TO
+# 222B; INTEGRAL
+# 222C; DOUBLE INTEGRAL
+# 222D; TRIPLE INTEGRAL
+# 222E; CONTOUR INTEGRAL
+# 222F; SURFACE INTEGRAL
+# 2230; VOLUME INTEGRAL
+# 2231; CLOCKWISE INTEGRAL
+# 2232; CLOCKWISE CONTOUR INTEGRAL
+# 2233; ANTICLOCKWISE CONTOUR INTEGRAL
+# 2239; EXCESS
+# 223B; HOMOTHETIC
+# 223E; INVERTED LAZY S
+# 223F; SINE WAVE
+# 2240; WREATH PRODUCT
+# 2241; NOT TILDE
+# 2242; MINUS TILDE
+# 2244; NOT ASYMPTOTICALLY EQUAL TO
+# 2245; APPROXIMATELY EQUAL TO
+# 2246; APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+# 2247; NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+# 2248; ALMOST EQUAL TO
+# 2249; NOT ALMOST EQUAL TO
+# 224A; ALMOST EQUAL OR EQUAL TO
+# 224B; TRIPLE TILDE
+# 224C; ALL EQUAL TO
+# 225F; QUESTIONED EQUAL TO
+# 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
+# 22AF; NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+# 22B8; MULTIMAP
+# 22BE; RIGHT ANGLE WITH ARC
+# 22BF; RIGHT TRIANGLE
+# 2320; TOP HALF INTEGRAL
+# 2321; BOTTOM HALF INTEGRAL
diff --git a/unidata/CreateGetType.pl b/unidata/CreateGetType.pl
new file mode 100755
index 0000000..dd40c34
--- /dev/null
+++ b/unidata/CreateGetType.pl
@@ -0,0 +1,373 @@
+#!/usr/bin/perl -w
+
+# FriBidi - Library of BiDi algorithm
+# Copyright (C) 1999 Dov Grobgeld
+# Copyright (C) 2001 Roozbeh Pournader
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+
+######################################################################
+# This is a Perl program for automatically building the cfunction
+# fribidi_get_type() which returns the Bidi type of a unicode
+# character. To build this function the script parses the
+# PropList.txt, and BidiMirroring.txt files.
+#
+# The latest version of these files are always available at:
+# http://www.unicode.org/Public/UNIDATA/
+######################################################################
+
+use strict;
+
+#my $unicode_data_file = "UnicodeData.txt";
+my $unicode_proplist_file = "PropList.txt";
+my $unicode_mirroring_file = "BidiMirroring.txt";
+my $proplist_version;
+my $mirroring_version;
+my @bidi_entities;
+my @mirrors;
+
+my %type_translate = (L=>'LTR',R=>'RTL','B'=>'BS','S'=>'SS');
+
+my %type_names = ("0x10000090" => ["CTL", "Control units"],
+ "0x01000000" => ["LTR", "Strong left to right"],
+ "0x02000000" => ["RTL", "Strong right to left"],
+ "0x03000000" => ["EN", "European digit"],
+ "0x04000000" => ["ES", "European number separator"],
+ "0x05000000" => ["ET", "European number terminator"],
+ "0x06000000" => ["AN", "Arabic digit"],
+ "0x07000000" => ["CS", "Common Separator"],
+ "0x08000000" => ["BS", "Block separator"],
+ "0x09000000" => ["SS", "Segment separator"],
+ "0x0A000000" => ["WS", "Whitespace"],
+ "0x0B000000" => ["AL", "Arabic right to left letter"],
+ "0x0C000000" => ["NSM", "Non-spacing mark"],
+ "0x0D000000" => ["BN", "Boundary Neutral"],
+ "0x0E000000" => ["PDF", "Pop directional formatting"],
+ "0x0F000000" => ["EO", "Embedding or override"],
+ "0x80000009" => ["ON", "Other Neutral"],
+ "0x10000091" => ["LRE", "RLE"],
+ "0x10000092" => ["RLE", "RLE"],
+ "0x10000093" => ["LRO", "RLO"],
+ "0x10000094" => ["RLO", "LRO"],
+ );
+
+open(PROP, $unicode_proplist_file)
+ or die "Failed opening $unicode_proplist_file!\n";
+
+#open(DATA, $unicode_data_file)
+# or die "Failed opening $unicode_data_file!\n";
+
+open(MIRR, $unicode_mirroring_file)
+ or die "Failed opening $unicode_mirroring_file!\n";
+
+$_ = <PROP>;
+if (/^Property dump: UnicodeData-(.*).txt/) {
+ $proplist_version = $1;
+}
+
+$_ = <MIRR>;
+if (/^# BidiMirroring-(.*).txt/) {
+ $mirroring_version = $1;
+}
+
+#parse_unicode_data_for_bidi_entries();
+parse_prop_for_bidi_entities();
+find_bidi_controls();
+#print_bidi_entities();
+parse_for_mirror_chars();
+#print_mirrored_chars();
+create_c_file();
+
+sub parse_unicode_data_for_bidi_entries {
+ seek(DATA,0,0);
+ my ($prev_type, $prev_num) = ('',0);
+ while(<DATA>) {
+ my ($num, $type) = (split(/;/))[0,4];
+ my $tt;
+ if ($tt = $type_translate{$type}) {
+ $type = $tt;
+ }
+ $num = hex($num);
+
+ if ($prev_type eq $type && $num == $prev_num+1) {
+ $bidi_entities[-1][2]++;
+ } else {
+ push(@bidi_entities, [$num, $type, 1]);
+ }
+ $prev_num = $num;
+ $prev_type = $type;
+ }
+}
+
+sub parse_prop_for_bidi_entities {
+ my @property_bidi_entities;
+ my ($type, $type_num, $type_descr);
+ while(<PROP>) {
+ tr/\r\n//d;
+ if (/^Property dump for:\s*(.*bidi.*)/i) {
+ $type = $1;
+ $_=<PROP>;
+ $type=~ / /;
+ ($type_num, $type_descr) = ($`, $');
+ next;
+ }
+ if ($type && /^\s*$/) {
+ $type = "";
+ }
+ next unless $type;
+
+ my($range) = split;
+ my($first,$last,$len);
+ if ($range =~ /\./) {
+ ($first,$last) = map(hex, split(/\.\./, $range));
+ $len = $last - $first +1;
+ } else {
+ ($first, $len) = (hex($range), 1);
+ }
+# print "$first $type_names{$type_num}->[0] $len\n";
+ $type = $type_names{$type_num} || die "Undefined num $type_num!\n";
+
+ push(@property_bidi_entities, [$first, $type_names{$type_num}->[0], $len]);
+ }
+
+ @bidi_entities = sort { $a->[0] <=> $b->[0] } @property_bidi_entities;
+}
+
+######################################################################
+# Manually change the bidi control characters that are not
+# explicitely listed in the PropList file to their corresponding
+# values.
+#
+# This should be changed to be more generic, but I don't expect
+# this behaviour to change in the PropList file in the near
+# future.
+######################################################################
+sub find_bidi_controls {
+ # Erase all bidi controls
+ @bidi_entities = grep($_->[1] !~ /^(CTL|EO)/o, @bidi_entities);
+
+ # Manually add the bidi controls that are not listed in PropList
+ push(@bidi_entities,
+ [0x202a, 'LRE', 1],
+ [0x202b, 'RLE', 1],
+ [0x202d, 'LRO', 1],
+ [0x202e, 'RLO', 1]);
+
+ # resort
+ @bidi_entities = sort { $a->[0] <=> $b->[0] } @bidi_entities;
+}
+
+sub parse_for_mirror_chars {
+ seek(MIRR,0,0);
+ while(<MIRR>) {
+ if (/^([0-9A-F]*); ([0-9A-F]*)/) {
+ push(@mirrors, [$1, $2]);
+ }
+ }
+}
+
+sub print_mirrored_chars {
+ print STDERR "Mirrors:\n";
+ for my $m (@mirrors) {
+ my ($num, $mirror_num) = @$m;
+ print STDERR "$num <=> $mirror_num\n";
+ }
+}
+
+sub print_bidi_entities {
+ for my $e (@bidi_entities) {
+ print sprintf("%04x", $e->[0]), " $e->[1] $e->[2]\n";
+ }
+}
+
+sub split_entity {
+ my $e = shift;
+ my ($start, $type, $len) = @$e;
+
+ my ($first,$last) = ($start, $start+$len-1);
+
+ return ($first, $last, $type);
+};
+
+
+sub create_block {
+ my ($block,$name, $ranges) = @_;
+ my($title) = <<__;
+guchar ${name}\[256\] = {
+__
+ my $result;
+ my $last_type=$ranges->[0]->[2];
+
+ my $ind = 0;
+ for my $i ($block*256 .. $block*256 + 255) {
+ my $found = 0;
+
+ if ($i % 16 == 0) {
+ $result .= " ";
+ }
+ while ($ind < @$ranges) {
+ if ($i > $ranges->[$ind]->[1]) {
+ $ind++;
+ } elsif ($i < $ranges->[$ind]->[0]) {
+ last;
+ } else {
+ $found = 1;
+ $result .= sprintf("%-3s,", $ranges->[$ind]->[2]);
+ $last_type=$ranges->[$ind]->[2];
+ last;
+ }
+ }
+ if (!$found) {
+ $result .= sprintf("%-3s,", $last_type);
+ }
+ if ($i % 16 == 15) {
+ $result .= "\n";
+ }
+ }
+ $result .= "};\n\n";
+ return($title, $result);
+};
+
+
+sub create_c_file {
+ # Create the h file
+ my $num_used_blocks = 0;
+
+ my $c_file =<<__;
+/*========================================================================
+// This file was automatically created from $unicode_proplist_file, version $proplist_version,
+// and $unicode_mirroring_file, version $mirroring_version, by the perl script CreateGetType.pl.
+//----------------------------------------------------------------------*/
+
+#include "fribidi.h"
+
+__
+
+ for my $type (keys %type_names) {
+ $c_file .= "#define $type_names{$type}->[0] FRIBIDI_TYPE_$type_names{$type}->[0]\n";
+ }
+ $c_file .= "\n\n";
+
+ my $i = 0;
+ my $block_array = <<__;
+guchar *FriBidiPropertyBlocks[256] = {
+__
+
+ my %seen_blocks;
+ for my $block (0..255) {
+ my @block_ranges;
+
+ while ($i < @bidi_entities) {
+ my ($first,$last,$type) = split_entity ($bidi_entities[$i]);
+
+ if ($first > $block * 256 + 255) {
+ last;
+ } else {
+ if ($last >= $block * 256) {
+ push @block_ranges, [ $first > $block * 256 ? $first : $block * 256,
+ $last < $block * 256 + 255 ? $last : $block * 256 + 255,
+ $type ];
+
+ }
+ if ($last < ($block + 1) * 256) {
+ $i++;
+ } else {
+ last;
+ }
+ }
+ }
+
+ if (@block_ranges == 0) {
+ $block_array .= " NULL,\n";
+
+# }
+# elsif (@block_ranges == 1
+# && $block_ranges[0]->[1] - $block_ranges[0]->[0] >= 255
+# && exists $solid_blocks{$block_ranges[0]->[2]}) {
+# my $name = $solid_blocks{$block_ranges[0]->[2]};
+# $block_array .= " $name,\n";
+
+ } else {
+ my $name = sprintf ("FriBidiPropertyBlock%04x", $block * 256);
+
+ my($title, $block_ctx) = create_block ($block, $name, \@block_ranges);
+
+ # use the fact that a hash table uses a good hash function. ;-)
+ if (exists $seen_blocks{$block_ctx}) {
+ my $name = $seen_blocks{$block_ctx};
+ $block_array .= " $name,\n";
+ } else {
+ $num_used_blocks++;
+ $block_array .= " $name,\n";
+ $c_file .= $title . $block_ctx;
+ $seen_blocks{$block_ctx} = $name;
+ }
+
+# if (@block_ranges == 1
+# && $block_ranges[0]->[1] - $block_ranges[0]->[0] >= 255
+# ) {
+# $solid_blocks{$block_ranges[0]->[2]} = $name;
+# }
+ }
+ }
+ $c_file .= "/* $num_used_blocks blocks defined */\n\n";
+
+ $c_file .= $block_array
+ . "};\n\n";
+
+ for my $type (keys %type_names) {
+ $c_file .= "#undef $type_names{$type}->[0]\n";
+ }
+
+ $c_file .= "\n\n";
+
+ ######################################################################
+ # Mirrored characters.
+ ######################################################################
+
+ $c_file .= <<__;
+/*======================================================================
+// Mirrored characters include all the characters in the Unicode list
+// that have been declared as being mirrored and that have a mirrored
+// equivalent.
+//
+// There are lots of characters that are designed as being mirrored
+// but do not have any mirrored glyph, e.g. the sign for there exist.
+// Are these used in Arabic? That is are all the mathematical signs
+// that are assigned to be mirrorable actually mirrored in Arabic?
+// If that is the case, we'll change the below code to include also
+// characters that mirror to themself. It will then be the responsibility
+// of the display engine to actually mirror these.
+//----------------------------------------------------------------------*/
+
+struct {
+ FriBidiChar ch, mirrored_ch;
+} FriBidiMirroredChars[] = {
+__
+
+ for my $i (0..@mirrors-1) {
+ my($ch, $mirrored_ch) = @{$mirrors[$i]};
+ $c_file .= " {0x$ch, 0x$mirrored_ch}";
+ $c_file .= "," unless $i == @mirrors-1;
+ $c_file .= "\n";
+ }
+ $c_file .= "};\n\n";
+ $c_file .= "gint nFriBidiMirroredChars = "
+ . scalar(@mirrors) . ";\n";
+
+ print $c_file;
+}
diff --git a/unidata/PropList.txt b/unidata/PropList.txt
new file mode 100644
index 0000000..e47f127
--- /dev/null
+++ b/unidata/PropList.txt
@@ -0,0 +1,3592 @@
+Property dump: UnicodeData-3.0.1.txt
+
+*******************************************
+
+Property dump for: 0x10000001 (Zero-width)
+
+070F
+180B..180E (4 chars)
+200B..200F (5 chars)
+202A..202E (5 chars)
+206A..206F (6 chars)
+FEFF
+FFF9..FFFB (3 chars)
+
+*******************************************
+
+Property dump for: 0x10000002 (Space)
+
+0020
+00A0
+1680
+2000..200B (12 chars)
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x10000004 (White space)
+
+0009..000D (5 chars)
+0020
+0085
+00A0
+1680
+2000..200B (12 chars)
+2028..2029 (2 chars)
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x00400000 (Non-break)
+
+00A0
+0F0C
+2007
+2011
+202F
+FEFF
+
+*******************************************
+
+Property dump for: 0x10000008 (ISO Control)
+
+0000..001F (32 chars)
+007F..009F (33 chars)
+
+*******************************************
+
+Property dump for: 0x10000090 (Bidi Control)
+
+200E..200F (2 chars)
+202A..202E (5 chars)
+
+*******************************************
+
+Property dump for: 0x100000A0 (Join Control)
+
+200C..200D (2 chars)
+
+*******************************************
+
+Property dump for: 0x100000C0 (Format Control)
+
+070F
+180B..180E (4 chars)
+206A..206F (6 chars)
+FFF9..FFFB (3 chars)
+
+*******************************************
+
+Property dump for: 0x20000400 (Dash)
+
+002D
+00AD
+058A
+1806
+2010..2015 (6 chars)
+207B
+208B
+2212
+301C
+3030
+FE31..FE32 (2 chars)
+FE58
+FE63
+FF0D
+
+*******************************************
+
+Property dump for: 0x20000800 (Hyphen)
+
+002D
+00AD
+058A
+1806
+2010..2011 (2 chars)
+30FB
+FE63
+FF0D
+FF65
+
+*******************************************
+
+Property dump for: 0x20001000 (Punctuation)
+
+0021..0023 (3 chars)
+0025..002A (6 chars)
+002C..002F (4 chars)
+003A..003B (2 chars)
+003F..0040 (2 chars)
+005B..005D (3 chars)
+005F
+007B
+007D
+00A1
+00AB
+00AD
+00B7
+00BB
+00BF
+037E
+0387
+055A..055F (6 chars)
+0589..058A (2 chars)
+05BE
+05C0
+05C3
+05F3..05F4 (2 chars)
+060C
+061B
+061F
+066A..066D (4 chars)
+06D4
+0700..070D (14 chars)
+0964..0965 (2 chars)
+0970
+0DF4
+0E4F
+0E5A..0E5B (2 chars)
+0F04..0F12 (15 chars)
+0F3A..0F3D (4 chars)
+0F85
+104A..104F (6 chars)
+10FB
+1361..1368 (8 chars)
+166D..166E (2 chars)
+169B..169C (2 chars)
+16EB..16ED (3 chars)
+17D4..17DA (7 chars)
+17DC
+1800..180A (11 chars)
+2010..2027 (24 chars)
+2030..2043 (20 chars)
+2045..2046 (2 chars)
+2048..204D (6 chars)
+207D..207E (2 chars)
+208D..208E (2 chars)
+2329..232A (2 chars)
+3001..3003 (3 chars)
+3008..3011 (10 chars)
+3014..301F (12 chars)
+3030
+30FB
+FD3E..FD3F (2 chars)
+FE30..FE44 (21 chars)
+FE49..FE52 (10 chars)
+FE54..FE61 (14 chars)
+FE63
+FE68
+FE6A..FE6B (2 chars)
+FF01..FF03 (3 chars)
+FF05..FF0A (6 chars)
+FF0C..FF0F (4 chars)
+FF1A..FF1B (2 chars)
+FF1F..FF20 (2 chars)
+FF3B..FF3D (3 chars)
+FF3F
+FF5B
+FF5D
+FF61..FF65 (5 chars)
+
+*******************************************
+
+Property dump for: 0x80000003 (Line Separator)
+
+2028
+
+*******************************************
+
+Property dump for: 0x80000004 (Paragraph Separator)
+
+2029
+
+*******************************************
+
+Property dump for: 0x20002000 (Quotation Mark)
+
+0022
+0027
+00AB
+00BB
+2018..201F (8 chars)
+2039..203A (2 chars)
+300C..300F (4 chars)
+301D..301F (3 chars)
+FE41..FE44 (4 chars)
+FF02
+FF07
+FF62..FF63 (2 chars)
+
+*******************************************
+
+Property dump for: 0x20004000 (Terminal Punctuation)
+
+0021
+002C
+002E
+003A..003B (2 chars)
+003F
+037E
+0387
+0589
+060C
+061B
+061F
+06D4
+0700..070A (11 chars)
+070C
+0964..0965 (2 chars)
+0E5A..0E5B (2 chars)
+104A..104B (2 chars)
+1361..1368 (8 chars)
+166D..166E (2 chars)
+16EB..16ED (3 chars)
+17D4..17D6 (3 chars)
+17DA
+1802..1805 (4 chars)
+1808..1809 (2 chars)
+203C..203D (2 chars)
+2048..2049 (2 chars)
+3001..3002 (2 chars)
+FE50..FE52 (3 chars)
+FE54..FE57 (4 chars)
+FF01
+FF0C
+FF0E
+FF1A..FF1B (2 chars)
+FF1F
+FF61
+FF64
+
+*******************************************
+
+Property dump for: 0x20008000 (Currency Symbol)
+
+0024
+00A2..00A5 (4 chars)
+09F2..09F3 (2 chars)
+0E3F
+17DB
+20A0..20AF (16 chars)
+FE69
+FF04
+FFE0..FFE1 (2 chars)
+FFE5..FFE6 (2 chars)
+
+*******************************************
+
+Property dump for: 0x20080000 (Math)
+
+0028..002B (4 chars)
+002D
+002F
+003C..003E (3 chars)
+005B..005E (4 chars)
+007B..007E (4 chars)
+00AC
+00B1
+00D7
+00F7
+2016
+2032..2034 (3 chars)
+2044
+207A..207E (5 chars)
+208A..208E (5 chars)
+20D0..20DC (13 chars)
+20E1
+2190..2194 (5 chars)
+219A..219B (2 chars)
+21A0
+21A3
+21A6
+21AE
+21CE..21CF (2 chars)
+21D2
+21D4
+2200..22F1 (242 chars)
+2308..230B (4 chars)
+2320..2321 (2 chars)
+2329..232A (2 chars)
+25B7
+25C1
+266F
+300A..300B (2 chars)
+301A..301B (2 chars)
+FB29
+FE35..FE38 (4 chars)
+FE59..FE5C (4 chars)
+FE61..FE66 (6 chars)
+FE68
+FF08..FF0B (4 chars)
+FF0D
+FF0F
+FF1C..FF1E (3 chars)
+FF3B..FF3E (4 chars)
+FF5B..FF5E (4 chars)
+FFE2
+FFE9..FFEC (4 chars)
+
+*******************************************
+
+Property dump for: 0x20000100 (Paired Punctuation)
+
+0028..0029 (2 chars)
+005B
+005D
+007B
+007D
+00AB
+00BB
+0F3A..0F3D (4 chars)
+169B..169C (2 chars)
+2018..201F (8 chars)
+2039..203A (2 chars)
+2045..2046 (2 chars)
+207D..207E (2 chars)
+208D..208E (2 chars)
+2329..232A (2 chars)
+3008..3011 (10 chars)
+3014..301B (8 chars)
+301D..301F (3 chars)
+FD3E..FD3F (2 chars)
+FE35..FE44 (16 chars)
+FE59..FE5E (6 chars)
+FF08..FF09 (2 chars)
+FF3B
+FF3D
+FF5B
+FF5D
+FF62..FF63 (2 chars)
+
+*******************************************
+
+Property dump for: 0x20000300 (Left of Pair)
+
+0028
+005B
+007B
+00AB
+0F3A
+0F3C
+169B
+2018
+201A..201C (3 chars)
+201E..201F (2 chars)
+2039
+2045
+207D
+208D
+2329
+3008
+300A
+300C
+300E
+3010
+3014
+3016
+3018
+301A
+301D
+FD3E
+FE35
+FE37
+FE39
+FE3B
+FE3D
+FE3F
+FE41
+FE43
+FE59
+FE5B
+FE5D
+FF08
+FF3B
+FF5B
+FF62
+
+*******************************************
+
+Property dump for: 0x20000004 (Combining)
+
+0300..034E (79 chars)
+0360..0362 (3 chars)
+0483..0486 (4 chars)
+0488..0489 (2 chars)
+0591..05A1 (17 chars)
+05A3..05B9 (23 chars)
+05BB..05BD (3 chars)
+05BF
+05C1..05C2 (2 chars)
+05C4
+064B..0655 (11 chars)
+0670
+06D6..06E4 (15 chars)
+06E7..06E8 (2 chars)
+06EA..06ED (4 chars)
+0711
+0730..074A (27 chars)
+07A6..07B0 (11 chars)
+0901..0903 (3 chars)
+093C
+093E..094D (16 chars)
+0951..0954 (4 chars)
+0962..0963 (2 chars)
+0981..0983 (3 chars)
+09BC
+09BE..09C4 (7 chars)
+09C7..09C8 (2 chars)
+09CB..09CD (3 chars)
+09D7
+09E2..09E3 (2 chars)
+0A02
+0A3C
+0A3E..0A42 (5 chars)
+0A47..0A48 (2 chars)
+0A4B..0A4D (3 chars)
+0A70..0A71 (2 chars)
+0A81..0A83 (3 chars)
+0ABC
+0ABE..0AC5 (8 chars)
+0AC7..0AC9 (3 chars)
+0ACB..0ACD (3 chars)
+0B01..0B03 (3 chars)
+0B3C
+0B3E..0B43 (6 chars)
+0B47..0B48 (2 chars)
+0B4B..0B4D (3 chars)
+0B56..0B57 (2 chars)
+0B82..0B83 (2 chars)
+0BBE..0BC2 (5 chars)
+0BC6..0BC8 (3 chars)
+0BCA..0BCD (4 chars)
+0BD7
+0C01..0C03 (3 chars)
+0C3E..0C44 (7 chars)
+0C46..0C48 (3 chars)
+0C4A..0C4D (4 chars)
+0C55..0C56 (2 chars)
+0C82..0C83 (2 chars)
+0CBE..0CC4 (7 chars)
+0CC6..0CC8 (3 chars)
+0CCA..0CCD (4 chars)
+0CD5..0CD6 (2 chars)
+0D02..0D03 (2 chars)
+0D3E..0D43 (6 chars)
+0D46..0D48 (3 chars)
+0D4A..0D4D (4 chars)
+0D57
+0D82..0D83 (2 chars)
+0DCA
+0DCF..0DD4 (6 chars)
+0DD6
+0DD8..0DDF (8 chars)
+0DF2..0DF3 (2 chars)
+0E31
+0E34..0E3A (7 chars)
+0E47..0E4E (8 chars)
+0EB1
+0EB4..0EB9 (6 chars)
+0EBB..0EBC (2 chars)
+0EC8..0ECD (6 chars)
+0F18..0F19 (2 chars)
+0F35
+0F37
+0F39
+0F3E..0F3F (2 chars)
+0F71..0F84 (20 chars)
+0F86..0F87 (2 chars)
+0F90..0F97 (8 chars)
+0F99..0FBC (36 chars)
+0FC6
+102C..1032 (7 chars)
+1036..1039 (4 chars)
+1056..1059 (4 chars)
+17B4..17D3 (32 chars)
+18A9
+20D0..20E3 (20 chars)
+302A..302F (6 chars)
+3099..309A (2 chars)
+FB1E
+FE20..FE23 (4 chars)
+
+*******************************************
+
+Property dump for: 0x20040000 (Non-spacing)
+
+0300..034E (79 chars)
+0360..0362 (3 chars)
+0483..0486 (4 chars)
+0488..0489 (2 chars)
+0591..05A1 (17 chars)
+05A3..05B9 (23 chars)
+05BB..05BD (3 chars)
+05BF
+05C1..05C2 (2 chars)
+05C4
+064B..0655 (11 chars)
+0670
+06D6..06E4 (15 chars)
+06E7..06E8 (2 chars)
+06EA..06ED (4 chars)
+0711
+0730..074A (27 chars)
+07A6..07B0 (11 chars)
+0901..0902 (2 chars)
+093C
+0941..0948 (8 chars)
+094D
+0951..0954 (4 chars)
+0962..0963 (2 chars)
+0981
+09BC
+09C1..09C4 (4 chars)
+09CD
+09E2..09E3 (2 chars)
+0A02
+0A3C
+0A41..0A42 (2 chars)
+0A47..0A48 (2 chars)
+0A4B..0A4D (3 chars)
+0A70..0A71 (2 chars)
+0A81..0A82 (2 chars)
+0ABC
+0AC1..0AC5 (5 chars)
+0AC7..0AC8 (2 chars)
+0ACD
+0B01
+0B3C
+0B3F
+0B41..0B43 (3 chars)
+0B4D
+0B56
+0B82
+0BC0
+0BCD
+0C3E..0C40 (3 chars)
+0C46..0C48 (3 chars)
+0C4A..0C4D (4 chars)
+0C55..0C56 (2 chars)
+0CBF
+0CC6
+0CCC..0CCD (2 chars)
+0D41..0D43 (3 chars)
+0D4D
+0DCA
+0DD2..0DD4 (3 chars)
+0DD6
+0E31
+0E34..0E3A (7 chars)
+0E47..0E4E (8 chars)
+0EB1
+0EB4..0EB9 (6 chars)
+0EBB..0EBC (2 chars)
+0EC8..0ECD (6 chars)
+0F18..0F19 (2 chars)
+0F35
+0F37
+0F39
+0F71..0F7E (14 chars)
+0F80..0F84 (5 chars)
+0F86..0F87 (2 chars)
+0F90..0F97 (8 chars)
+0F99..0FBC (36 chars)
+0FC6
+102D..1030 (4 chars)
+1032
+1036..1037 (2 chars)
+1039
+1058..1059 (2 chars)
+17B7..17BD (7 chars)
+17C6
+17C9..17D3 (11 chars)
+18A9
+20D0..20E3 (20 chars)
+302A..302F (6 chars)
+3099..309A (2 chars)
+FB1E
+FE20..FE23 (4 chars)
+
+*******************************************
+
+Property dump for: 0x20000008 (Composite)
+
+00C0..00C5 (6 chars)
+00C7..00CF (9 chars)
+00D1..00D6 (6 chars)
+00D9..00DD (5 chars)
+00E0..00E5 (6 chars)
+00E7..00EF (9 chars)
+00F1..00F6 (6 chars)
+00F9..00FD (5 chars)
+00FF..0130 (50 chars)
+0132..0137 (6 chars)
+0139..0149 (17 chars)
+014C..0151 (6 chars)
+0154..017E (43 chars)
+01A0..01A1 (2 chars)
+01AF..01B0 (2 chars)
+01C4..01DC (25 chars)
+01DE..01E3 (6 chars)
+01E6..01F5 (16 chars)
+01F8..0209 (18 chars)
+020C..021B (16 chars)
+021E..021F (2 chars)
+0226..0233 (14 chars)
+0344
+0385..0386 (2 chars)
+0388..038A (3 chars)
+038C
+038E..0390 (3 chars)
+03AA..03B0 (7 chars)
+03CA..03CE (5 chars)
+03D3..03D5 (3 chars)
+0400..0401 (2 chars)
+0403
+0407
+040C..040E (3 chars)
+0419
+0439
+0450..0451 (2 chars)
+0453
+0457
+045C..045E (3 chars)
+0476..0477 (2 chars)
+04BE..04BF (2 chars)
+04C1..04C2 (2 chars)
+04D0..04D3 (4 chars)
+04D6..04D7 (2 chars)
+04DA..04E7 (14 chars)
+04EA..04F5 (12 chars)
+04F8..04F9 (2 chars)
+0587
+0622..0626 (5 chars)
+06C0
+06C2
+06D6..06D7 (2 chars)
+0929
+0931
+0934
+0950
+0958..095F (8 chars)
+09CB..09CC (2 chars)
+09DC..09DD (2 chars)
+09DF
+0A33
+0A36
+0A59..0A5B (3 chars)
+0A5E
+0A74
+0AD0
+0B01
+0B48
+0B4B..0B4C (2 chars)
+0B5C..0B5D (2 chars)
+0B94
+0BCA..0BCC (3 chars)
+0C48
+0CC0
+0CC7..0CC8 (2 chars)
+0CCA..0CCB (2 chars)
+0D4A..0D4C (3 chars)
+0DDA
+0DDC..0DDE (3 chars)
+0E33
+0EB3
+0EDC..0EDD (2 chars)
+0F00
+0F43
+0F4D
+0F52
+0F57
+0F5C
+0F69
+0F73
+0F75..0F79 (5 chars)
+0F81
+0F93
+0F9D
+0FA2
+0FA7
+0FAC
+0FB9
+1026
+1E00..1E9B (156 chars)
+1EA0..1EF9 (90 chars)
+1F00..1F15 (22 chars)
+1F18..1F1D (6 chars)
+1F20..1F45 (38 chars)
+1F48..1F4D (6 chars)
+1F50..1F57 (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D (31 chars)
+1F80..1FB4 (53 chars)
+1FB6..1FBC (7 chars)
+1FC1..1FC4 (4 chars)
+1FC6..1FD3 (14 chars)
+1FD6..1FDB (6 chars)
+1FDD..1FEE (18 chars)
+1FF2..1FF4 (3 chars)
+1FF6..1FFC (7 chars)
+203C
+2048..2049 (2 chars)
+2161..2163 (3 chars)
+2165..2168 (4 chars)
+216A..216B (2 chars)
+2171..2173 (3 chars)
+2175..2178 (4 chars)
+217A..217B (2 chars)
+2204
+2209
+220C
+2226
+222C..222D (2 chars)
+222F..2230 (2 chars)
+2247
+2249
+2260
+2262
+226D..2271 (5 chars)
+2274..2275 (2 chars)
+2278..2279 (2 chars)
+2280..2281 (2 chars)
+2284..2285 (2 chars)
+2288..2289 (2 chars)
+22AC..22AF (4 chars)
+22E0..22E3 (4 chars)
+22EA..22ED (4 chars)
+2460..24B5 (86 chars)
+24EA
+304C
+304E
+3050
+3052
+3054
+3056
+3058
+305A
+305C
+305E
+3060
+3062
+3065
+3067
+3069
+3070..3071 (2 chars)
+3073..3074 (2 chars)
+3076..3077 (2 chars)
+3079..307A (2 chars)
+307C..307D (2 chars)
+3094
+309E
+30AC
+30AE
+30B0
+30B2
+30B4
+30B6
+30B8
+30BA
+30BC
+30BE
+30C0
+30C2
+30C5
+30C7
+30C9
+30D0..30D1 (2 chars)
+30D3..30D4 (2 chars)
+30D6..30D7 (2 chars)
+30D9..30DA (2 chars)
+30DC..30DD (2 chars)
+30F4
+30FE
+3200..321C (29 chars)
+3220..3243 (36 chars)
+32C0..32CB (12 chars)
+3300..3376 (119 chars)
+337B..33DD (99 chars)
+33E0..33FE (31 chars)
+AC00..D7A3 (11172 chars)
+FB00..FB06 (7 chars)
+FB13..FB17 (5 chars)
+FB1D
+FB1F
+FB2A..FB36 (13 chars)
+FB38..FB3C (5 chars)
+FB3E
+FB40..FB41 (2 chars)
+FB43..FB44 (2 chars)
+FB46..FB4F (10 chars)
+FBEA..FBFB (18 chars)
+FC00..FD3D (318 chars)
+FD50..FD8F (64 chars)
+FD92..FDC7 (54 chars)
+FDF0..FDFB (12 chars)
+FE70..FE72 (3 chars)
+FE74
+FE76..FE7F (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000080 (Hex Digit)
+
+0030..0039 (10 chars)
+0041..0046 (6 chars)
+0061..0066 (6 chars)
+FF10..FF19 (10 chars)
+FF21..FF26 (6 chars)
+FF41..FF46 (6 chars)
+
+*******************************************
+
+Property dump for: 0x20000030 (Decimal Digit)
+
+0030..0039 (10 chars)
+0660..0669 (10 chars)
+06F0..06F9 (10 chars)
+0966..096F (10 chars)
+09E6..09EF (10 chars)
+0A66..0A6F (10 chars)
+0AE6..0AEF (10 chars)
+0B66..0B6F (10 chars)
+0BE7..0BEF (9 chars)
+0C66..0C6F (10 chars)
+0CE6..0CEF (10 chars)
+0D66..0D6F (10 chars)
+0E50..0E59 (10 chars)
+0ED0..0ED9 (10 chars)
+0F20..0F29 (10 chars)
+1040..1049 (10 chars)
+1369..1371 (9 chars)
+17E0..17E9 (10 chars)
+1810..1819 (10 chars)
+FF10..FF19 (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000010 (Numeric)
+
+0030..0039 (10 chars)
+00B2..00B3 (2 chars)
+00B9
+00BC..00BE (3 chars)
+0660..0669 (10 chars)
+06F0..06F9 (10 chars)
+0966..096F (10 chars)
+09E6..09EF (10 chars)
+09F4..09F9 (6 chars)
+0A66..0A6F (10 chars)
+0AE6..0AEF (10 chars)
+0B66..0B6F (10 chars)
+0BE7..0BF2 (12 chars)
+0C66..0C6F (10 chars)
+0CE6..0CEF (10 chars)
+0D66..0D6F (10 chars)
+0E50..0E59 (10 chars)
+0ED0..0ED9 (10 chars)
+0F20..0F33 (20 chars)
+1040..1049 (10 chars)
+1369..137C (20 chars)
+16EE..16F0 (3 chars)
+17E0..17E9 (10 chars)
+1810..1819 (10 chars)
+2070
+2074..2079 (6 chars)
+2080..2089 (10 chars)
+2153..2183 (49 chars)
+2460..249B (60 chars)
+24EA
+2776..2793 (30 chars)
+3007
+3021..3029 (9 chars)
+3038..303A (3 chars)
+3192..3195 (4 chars)
+3220..3229 (10 chars)
+3280..3289 (10 chars)
+FF10..FF19 (10 chars)
+
+*******************************************
+
+Property dump for: 0x20000001 (Alphabetic)
+
+0041..005A (26 chars)
+0061..007A (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6 (23 chars)
+00D8..00F6 (31 chars)
+00F8..021F (296 chars)
+0222..0233 (18 chars)
+0250..02AD (94 chars)
+02B0..02B8 (9 chars)
+02BB..02C1 (7 chars)
+02E0..02E4 (5 chars)
+02EE
+0345
+037A
+0386
+0388..038A (3 chars)
+038C
+038E..03A1 (20 chars)
+03A3..03CE (44 chars)
+03D0..03D7 (8 chars)
+03DA..03F3 (26 chars)
+0400..0481 (130 chars)
+048C..04C4 (57 chars)
+04C7..04C8 (2 chars)
+04CB..04CC (2 chars)
+04D0..04F5 (38 chars)
+04F8..04F9 (2 chars)
+0531..0556 (38 chars)
+0559
+0561..0587 (39 chars)
+05D0..05EA (27 chars)
+05F0..05F2 (3 chars)
+0621..063A (26 chars)
+0641..0655 (21 chars)
+0670..06D3 (100 chars)
+06D5..06DC (8 chars)
+06E1..06E8 (8 chars)
+06ED
+06FA..06FC (3 chars)
+0710..072C (29 chars)
+0730..073F (16 chars)
+0780..07B0 (49 chars)
+0901..0903 (3 chars)
+0905..0939 (53 chars)
+093D..094C (16 chars)
+0950
+0958..0963 (12 chars)
+0981..0983 (3 chars)
+0985..098C (8 chars)
+098F..0990 (2 chars)
+0993..09A8 (22 chars)
+09AA..09B0 (7 chars)
+09B2
+09B6..09B9 (4 chars)
+09BE..09C4 (7 chars)
+09C7..09C8 (2 chars)
+09CB..09CC (2 chars)
+09D7
+09DC..09DD (2 chars)
+09DF..09E3 (5 chars)
+09F0..09F1 (2 chars)
+0A02
+0A05..0A0A (6 chars)
+0A0F..0A10 (2 chars)
+0A13..0A28 (22 chars)
+0A2A..0A30 (7 chars)
+0A32..0A33 (2 chars)
+0A35..0A36 (2 chars)
+0A38..0A39 (2 chars)
+0A3E..0A42 (5 chars)
+0A47..0A48 (2 chars)
+0A4B..0A4C (2 chars)
+0A59..0A5C (4 chars)
+0A5E
+0A70..0A74 (5 chars)
+0A81..0A83 (3 chars)
+0A85..0A8B (7 chars)
+0A8D
+0A8F..0A91 (3 chars)
+0A93..0AA8 (22 chars)
+0AAA..0AB0 (7 chars)
+0AB2..0AB3 (2 chars)
+0AB5..0AB9 (5 chars)
+0ABD..0AC5 (9 chars)
+0AC7..0AC9 (3 chars)
+0ACB..0ACC (2 chars)
+0AD0
+0AE0
+0B01..0B03 (3 chars)
+0B05..0B0C (8 chars)
+0B0F..0B10 (2 chars)
+0B13..0B28 (22 chars)
+0B2A..0B30 (7 chars)
+0B32..0B33 (2 chars)
+0B36..0B39 (4 chars)
+0B3D..0B43 (7 chars)
+0B47..0B48 (2 chars)
+0B4B..0B4C (2 chars)
+0B56..0B57 (2 chars)
+0B5C..0B5D (2 chars)
+0B5F..0B61 (3 chars)
+0B82..0B83 (2 chars)
+0B85..0B8A (6 chars)
+0B8E..0B90 (3 chars)
+0B92..0B95 (4 chars)
+0B99..0B9A (2 chars)
+0B9C
+0B9E..0B9F (2 chars)
+0BA3..0BA4 (2 chars)
+0BA8..0BAA (3 chars)
+0BAE..0BB5 (8 chars)
+0BB7..0BB9 (3 chars)
+0BBE..0BC2 (5 chars)
+0BC6..0BC8 (3 chars)
+0BCA..0BCC (3 chars)
+0BD7
+0C01..0C03 (3 chars)
+0C05..0C0C (8 chars)
+0C0E..0C10 (3 chars)
+0C12..0C28 (23 chars)
+0C2A..0C33 (10 chars)
+0C35..0C39 (5 chars)
+0C3E..0C44 (7 chars)
+0C46..0C48 (3 chars)
+0C4A..0C4C (3 chars)
+0C55..0C56 (2 chars)
+0C60..0C61 (2 chars)
+0C82..0C83 (2 chars)
+0C85..0C8C (8 chars)
+0C8E..0C90 (3 chars)
+0C92..0CA8 (23 chars)
+0CAA..0CB3 (10 chars)
+0CB5..0CB9 (5 chars)
+0CBE..0CC4 (7 chars)
+0CC6..0CC8 (3 chars)
+0CCA..0CCC (3 chars)
+0CD5..0CD6 (2 chars)
+0CDE
+0CE0..0CE1 (2 chars)
+0D02..0D03 (2 chars)
+0D05..0D0C (8 chars)
+0D0E..0D10 (3 chars)
+0D12..0D28 (23 chars)
+0D2A..0D39 (16 chars)
+0D3E..0D43 (6 chars)
+0D46..0D48 (3 chars)
+0D4A..0D4C (3 chars)
+0D57
+0D60..0D61 (2 chars)
+0D82..0D83 (2 chars)
+0D85..0D96 (18 chars)
+0D9A..0DB1 (24 chars)
+0DB3..0DBB (9 chars)
+0DBD
+0DC0..0DC6 (7 chars)
+0DCF..0DD4 (6 chars)
+0DD6
+0DD8..0DDF (8 chars)
+0DF2..0DF3 (2 chars)
+0E01..0E3A (58 chars)
+0E40..0E45 (6 chars)
+0E4D
+0E81..0E82 (2 chars)
+0E84
+0E87..0E88 (2 chars)
+0E8A
+0E8D
+0E94..0E97 (4 chars)
+0E99..0E9F (7 chars)
+0EA1..0EA3 (3 chars)
+0EA5
+0EA7
+0EAA..0EAB (2 chars)
+0EAD..0EB9 (13 chars)
+0EBB..0EBD (3 chars)
+0EC0..0EC4 (5 chars)
+0ECD
+0EDC..0EDD (2 chars)
+0F00
+0F40..0F47 (8 chars)
+0F49..0F6A (34 chars)
+0F71..0F81 (17 chars)
+0F88..0F8B (4 chars)
+0F90..0F97 (8 chars)
+0F99..0FBC (36 chars)
+1000..1021 (34 chars)
+1023..1027 (5 chars)
+1029..102A (2 chars)
+102C..1032 (7 chars)
+1036
+1038
+1050..1059 (10 chars)
+10A0..10C5 (38 chars)
+10D0..10F6 (39 chars)
+1100..1159 (90 chars)
+115F..11A2 (68 chars)
+11A8..11F9 (82 chars)
+1200..1206 (7 chars)
+1208..1246 (63 chars)
+1248
+124A..124D (4 chars)
+1250..1256 (7 chars)
+1258
+125A..125D (4 chars)
+1260..1286 (39 chars)
+1288
+128A..128D (4 chars)
+1290..12AE (31 chars)
+12B0
+12B2..12B5 (4 chars)
+12B8..12BE (7 chars)
+12C0
+12C2..12C5 (4 chars)
+12C8..12CE (7 chars)
+12D0..12D6 (7 chars)
+12D8..12EE (23 chars)
+12F0..130E (31 chars)
+1310
+1312..1315 (4 chars)
+1318..131E (7 chars)
+1320..1346 (39 chars)
+1348..135A (19 chars)
+13A0..13F4 (85 chars)
+1401..166C (620 chars)
+166F..1676 (8 chars)
+1681..169A (26 chars)
+16A0..16EA (75 chars)
+1780..17C8 (73 chars)
+1820..1842 (35 chars)
+1844..1877 (52 chars)
+1880..18A9 (42 chars)
+1E00..1E9B (156 chars)
+1EA0..1EF9 (90 chars)
+1F00..1F15 (22 chars)
+1F18..1F1D (6 chars)
+1F20..1F45 (38 chars)
+1F48..1F4D (6 chars)
+1F50..1F57 (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D (31 chars)
+1F80..1FB4 (53 chars)
+1FB6..1FBC (7 chars)
+1FBE
+1FC2..1FC4 (3 chars)
+1FC6..1FCC (7 chars)
+1FD0..1FD3 (4 chars)
+1FD6..1FDB (6 chars)
+1FE0..1FEC (13 chars)
+1FF2..1FF4 (3 chars)
+1FF6..1FFC (7 chars)
+207F
+2102
+2107
+210A..2113 (10 chars)
+2115
+2119..211D (5 chars)
+2124
+2126
+2128
+212A..212D (4 chars)
+212F..2131 (3 chars)
+2133..2139 (7 chars)
+2160..2183 (36 chars)
+3041..3094 (84 chars)
+30A1..30FA (90 chars)
+3105..312C (40 chars)
+3131..318E (94 chars)
+31A0..31B7 (24 chars)
+A000..A48C (1165 chars)
+AC00..D7A3 (11172 chars)
+FB00..FB06 (7 chars)
+FB13..FB17 (5 chars)
+FB1D
+FB1F..FB28 (10 chars)
+FB2A..FB36 (13 chars)
+FB38..FB3C (5 chars)
+FB3E
+FB40..FB41 (2 chars)
+FB43..FB44 (2 chars)
+FB46..FBB1 (108 chars)
+FBD3..FD3D (363 chars)
+FD50..FD8F (64 chars)
+FD92..FDC7 (54 chars)
+FDF0..FDFB (12 chars)
+FE70..FE72 (3 chars)
+FE74
+FE76..FEFC (135 chars)
+FF21..FF3A (26 chars)
+FF41..FF5A (26 chars)
+FF66..FF6F (10 chars)
+FF71..FF9D (45 chars)
+FFA0..FFBE (31 chars)
+FFC2..FFC7 (6 chars)
+FFCA..FFCF (6 chars)
+FFD2..FFD7 (6 chars)
+FFDA..FFDC (3 chars)
+
+*******************************************
+
+Property dump for: 0x20000002 (Ideographic)
+
+3006..3007 (2 chars)
+3021..3029 (9 chars)
+3038..303A (3 chars)
+3400..4DB5 (6582 chars)
+4E00..9FA5 (20902 chars)
+F900..FA2D (302 chars)
+
+*******************************************
+
+Property dump for: 0x20010000 (Diacritic)
+
+005E
+0060
+00A8
+00AF
+00B4
+00B7..00B8 (2 chars)
+02B0..02EE (63 chars)
+0300..034E (79 chars)
+0360..0362 (3 chars)
+0374..0375 (2 chars)
+037A
+0384..0385 (2 chars)
+0483..0486 (4 chars)
+0559
+0591..05A1 (17 chars)
+05A3..05B9 (23 chars)
+05BB..05BD (3 chars)
+05BF
+05C1..05C2 (2 chars)
+05C4
+06DF..06E0 (2 chars)
+06E5..06E6 (2 chars)
+06EA..06EC (3 chars)
+0740..074A (11 chars)
+093C
+094D
+0951..0954 (4 chars)
+09BC
+09CD
+0A3C
+0A4D
+0ABC
+0ACD
+0B3C
+0B4D
+0BCD
+0C4D
+0CCD
+0D4D
+0DCA
+0E47..0E4C (6 chars)
+0E4E
+0EC8..0ECC (5 chars)
+0F18..0F19 (2 chars)
+0F35
+0F37
+0F39
+0F3E..0F3F (2 chars)
+0F82..0F84 (3 chars)
+0F86..0F87 (2 chars)
+0FC6
+1037
+1039
+17C9..17D3 (11 chars)
+1FBD
+1FBF..1FC1 (3 chars)
+1FCD..1FCF (3 chars)
+1FDD..1FDF (3 chars)
+1FED..1FEF (3 chars)
+1FFD..1FFE (2 chars)
+302A..302F (6 chars)
+3099..309C (4 chars)
+30FC
+FB1E
+FE20..FE23 (4 chars)
+FF3E
+FF40
+FF70
+FF9E..FF9F (2 chars)
+FFE3
+
+*******************************************
+
+Property dump for: 0x20000040 (Extender)
+
+00B7
+02D0..02D1 (2 chars)
+0640
+0E46
+0EC6
+1843
+3005
+3031..3035 (5 chars)
+309D..309E (2 chars)
+30FC..30FE (3 chars)
+FF70
+
+*******************************************
+
+Property dump for: 0x20020000 (Identifier Part)
+
+0030..0039 (10 chars)
+0041..005A (26 chars)
+005F
+0061..007A (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6 (23 chars)
+00D8..00F6 (31 chars)
+00F8..021F (296 chars)
+0222..0233 (18 chars)
+0250..02AD (94 chars)
+02B0..02B8 (9 chars)
+02BB..02C1 (7 chars)
+02D0..02D1 (2 chars)
+02E0..02E4 (5 chars)
+02EE
+0300..034E (79 chars)
+0360..0362 (3 chars)
+037A
+0386
+0388..038A (3 chars)
+038C
+038E..03A1 (20 chars)
+03A3..03CE (44 chars)
+03D0..03D7 (8 chars)
+03DA..03F3 (26 chars)
+0400..0481 (130 chars)
+0483..0486 (4 chars)
+048C..04C4 (57 chars)
+04C7..04C8 (2 chars)
+04CB..04CC (2 chars)
+04D0..04F5 (38 chars)
+04F8..04F9 (2 chars)
+0531..0556 (38 chars)
+0559
+0561..0587 (39 chars)
+0591..05A1 (17 chars)
+05A3..05B9 (23 chars)
+05BB..05BD (3 chars)
+05BF
+05C1..05C2 (2 chars)
+05C4
+05D0..05EA (27 chars)
+05F0..05F2 (3 chars)
+0621..063A (26 chars)
+0640..0655 (22 chars)
+0660..0669 (10 chars)
+0670..06D3 (100 chars)
+06D5..06DC (8 chars)
+06DF..06E8 (10 chars)
+06EA..06ED (4 chars)
+06F0..06FC (13 chars)
+0710..072C (29 chars)
+0730..074A (27 chars)
+0780..07B0 (49 chars)
+0901..0903 (3 chars)
+0905..0939 (53 chars)
+093C..094D (18 chars)
+0950..0954 (5 chars)
+0958..0963 (12 chars)
+0966..096F (10 chars)
+0981..0983 (3 chars)
+0985..098C (8 chars)
+098F..0990 (2 chars)
+0993..09A8 (22 chars)
+09AA..09B0 (7 chars)
+09B2
+09B6..09B9 (4 chars)
+09BC
+09BE..09C4 (7 chars)
+09C7..09C8 (2 chars)
+09CB..09CD (3 chars)
+09D7
+09DC..09DD (2 chars)
+09DF..09E3 (5 chars)
+09E6..09F1 (12 chars)
+0A02
+0A05..0A0A (6 chars)
+0A0F..0A10 (2 chars)
+0A13..0A28 (22 chars)
+0A2A..0A30 (7 chars)
+0A32..0A33 (2 chars)
+0A35..0A36 (2 chars)
+0A38..0A39 (2 chars)
+0A3C
+0A3E..0A42 (5 chars)
+0A47..0A48 (2 chars)
+0A4B..0A4D (3 chars)
+0A59..0A5C (4 chars)
+0A5E
+0A66..0A74 (15 chars)
+0A81..0A83 (3 chars)
+0A85..0A8B (7 chars)
+0A8D
+0A8F..0A91 (3 chars)
+0A93..0AA8 (22 chars)
+0AAA..0AB0 (7 chars)
+0AB2..0AB3 (2 chars)
+0AB5..0AB9 (5 chars)
+0ABC..0AC5 (10 chars)
+0AC7..0AC9 (3 chars)
+0ACB..0ACD (3 chars)
+0AD0
+0AE0
+0AE6..0AEF (10 chars)
+0B01..0B03 (3 chars)
+0B05..0B0C (8 chars)
+0B0F..0B10 (2 chars)
+0B13..0B28 (22 chars)
+0B2A..0B30 (7 chars)
+0B32..0B33 (2 chars)
+0B36..0B39 (4 chars)
+0B3C..0B43 (8 chars)
+0B47..0B48 (2 chars)
+0B4B..0B4D (3 chars)
+0B56..0B57 (2 chars)
+0B5C..0B5D (2 chars)
+0B5F..0B61 (3 chars)
+0B66..0B6F (10 chars)
+0B82..0B83 (2 chars)
+0B85..0B8A (6 chars)
+0B8E..0B90 (3 chars)
+0B92..0B95 (4 chars)
+0B99..0B9A (2 chars)
+0B9C
+0B9E..0B9F (2 chars)
+0BA3..0BA4 (2 chars)
+0BA8..0BAA (3 chars)
+0BAE..0BB5 (8 chars)
+0BB7..0BB9 (3 chars)
+0BBE..0BC2 (5 chars)
+0BC6..0BC8 (3 chars)
+0BCA..0BCD (4 chars)
+0BD7
+0BE7..0BEF (9 chars)
+0C01..0C03 (3 chars)
+0C05..0C0C (8 chars)
+0C0E..0C10 (3 chars)
+0C12..0C28 (23 chars)
+0C2A..0C33 (10 chars)
+0C35..0C39 (5 chars)
+0C3E..0C44 (7 chars)
+0C46..0C48 (3 chars)
+0C4A..0C4D (4 chars)
+0C55..0C56 (2 chars)
+0C60..0C61 (2 chars)
+0C66..0C6F (10 chars)
+0C82..0C83 (2 chars)
+0C85..0C8C (8 chars)
+0C8E..0C90 (3 chars)
+0C92..0CA8 (23 chars)
+0CAA..0CB3 (10 chars)
+0CB5..0CB9 (5 chars)
+0CBE..0CC4 (7 chars)
+0CC6..0CC8 (3 chars)
+0CCA..0CCD (4 chars)
+0CD5..0CD6 (2 chars)
+0CDE
+0CE0..0CE1 (2 chars)
+0CE6..0CEF (10 chars)
+0D02..0D03 (2 chars)
+0D05..0D0C (8 chars)
+0D0E..0D10 (3 chars)
+0D12..0D28 (23 chars)
+0D2A..0D39 (16 chars)
+0D3E..0D43 (6 chars)
+0D46..0D48 (3 chars)
+0D4A..0D4D (4 chars)
+0D57
+0D60..0D61 (2 chars)
+0D66..0D6F (10 chars)
+0D82..0D83 (2 chars)
+0D85..0D96 (18 chars)
+0D9A..0DB1 (24 chars)
+0DB3..0DBB (9 chars)
+0DBD
+0DC0..0DC6 (7 chars)
+0DCA
+0DCF..0DD4 (6 chars)
+0DD6
+0DD8..0DDF (8 chars)
+0DF2..0DF3 (2 chars)
+0E01..0E3A (58 chars)
+0E40..0E4E (15 chars)
+0E50..0E59 (10 chars)
+0E81..0E82 (2 chars)
+0E84
+0E87..0E88 (2 chars)
+0E8A
+0E8D
+0E94..0E97 (4 chars)
+0E99..0E9F (7 chars)
+0EA1..0EA3 (3 chars)
+0EA5
+0EA7
+0EAA..0EAB (2 chars)
+0EAD..0EB9 (13 chars)
+0EBB..0EBD (3 chars)
+0EC0..0EC4 (5 chars)
+0EC6
+0EC8..0ECD (6 chars)
+0ED0..0ED9 (10 chars)
+0EDC..0EDD (2 chars)
+0F00
+0F18..0F19 (2 chars)
+0F20..0F29 (10 chars)
+0F35
+0F37
+0F39
+0F3E..0F47 (10 chars)
+0F49..0F6A (34 chars)
+0F71..0F84 (20 chars)
+0F86..0F8B (6 chars)
+0F90..0F97 (8 chars)
+0F99..0FBC (36 chars)
+0FC6
+1000..1021 (34 chars)
+1023..1027 (5 chars)
+1029..102A (2 chars)
+102C..1032 (7 chars)
+1036..1039 (4 chars)
+1040..1049 (10 chars)
+1050..1059 (10 chars)
+10A0..10C5 (38 chars)
+10D0..10F6 (39 chars)
+1100..1159 (90 chars)
+115F..11A2 (68 chars)
+11A8..11F9 (82 chars)
+1200..1206 (7 chars)
+1208..1246 (63 chars)
+1248
+124A..124D (4 chars)
+1250..1256 (7 chars)
+1258
+125A..125D (4 chars)
+1260..1286 (39 chars)
+1288
+128A..128D (4 chars)
+1290..12AE (31 chars)
+12B0
+12B2..12B5 (4 chars)
+12B8..12BE (7 chars)
+12C0
+12C2..12C5 (4 chars)
+12C8..12CE (7 chars)
+12D0..12D6 (7 chars)
+12D8..12EE (23 chars)
+12F0..130E (31 chars)
+1310
+1312..1315 (4 chars)
+1318..131E (7 chars)
+1320..1346 (39 chars)
+1348..135A (19 chars)
+1369..1371 (9 chars)
+13A0..13F4 (85 chars)
+1401..166C (620 chars)
+166F..1676 (8 chars)
+1681..169A (26 chars)
+16A0..16EA (75 chars)
+1780..17D3 (84 chars)
+17E0..17E9 (10 chars)
+1810..1819 (10 chars)
+1820..1877 (88 chars)
+1880..18A9 (42 chars)
+1E00..1E9B (156 chars)
+1EA0..1EF9 (90 chars)
+1F00..1F15 (22 chars)
+1F18..1F1D (6 chars)
+1F20..1F45 (38 chars)
+1F48..1F4D (6 chars)
+1F50..1F57 (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D (31 chars)
+1F80..1FB4 (53 chars)
+1FB6..1FBC (7 chars)
+1FBE
+1FC2..1FC4 (3 chars)
+1FC6..1FCC (7 chars)
+1FD0..1FD3 (4 chars)
+1FD6..1FDB (6 chars)
+1FE0..1FEC (13 chars)
+1FF2..1FF4 (3 chars)
+1FF6..1FFC (7 chars)
+203F..2040 (2 chars)
+207F
+20D0..20DC (13 chars)
+20E1
+2102
+2107
+210A..2113 (10 chars)
+2115
+2119..211D (5 chars)
+2124
+2126
+2128
+212A..212D (4 chars)
+212F..2131 (3 chars)
+2133..2139 (7 chars)
+2160..2183 (36 chars)
+3005..3007 (3 chars)
+3021..302F (15 chars)
+3031..3035 (5 chars)
+3038..303A (3 chars)
+3041..3094 (84 chars)
+3099..309A (2 chars)
+309D..309E (2 chars)
+30A1..30FE (94 chars)
+3105..312C (40 chars)
+3131..318E (94 chars)
+31A0..31B7 (24 chars)
+3400..4DB5 (6582 chars)
+4E00..9FA5 (20902 chars)
+A000..A48C (1165 chars)
+AC00..D7A3 (11172 chars)
+F900..FA2D (302 chars)
+FB00..FB06 (7 chars)
+FB13..FB17 (5 chars)
+FB1D..FB28 (12 chars)
+FB2A..FB36 (13 chars)
+FB38..FB3C (5 chars)
+FB3E
+FB40..FB41 (2 chars)
+FB43..FB44 (2 chars)
+FB46..FBB1 (108 chars)
+FBD3..FD3D (363 chars)
+FD50..FD8F (64 chars)
+FD92..FDC7 (54 chars)
+FDF0..FDFB (12 chars)
+FE20..FE23 (4 chars)
+FE33..FE34 (2 chars)
+FE4D..FE4F (3 chars)
+FE70..FE72 (3 chars)
+FE74
+FE76..FEFC (135 chars)
+FF10..FF19 (10 chars)
+FF21..FF3A (26 chars)
+FF3F
+FF41..FF5A (26 chars)
+FF65..FFBE (90 chars)
+FFC2..FFC7 (6 chars)
+FFCA..FFCF (6 chars)
+FFD2..FFD7 (6 chars)
+FFDA..FFDC (3 chars)
+
+*******************************************
+
+Property dump for: 0x10000080 (Ignorable Control)
+
+0001..0008 (8 chars)
+000E..001B (14 chars)
+007F..0084 (6 chars)
+0086..009F (26 chars)
+070F
+180B..180E (4 chars)
+200C..200F (4 chars)
+202A..202E (5 chars)
+206A..206F (6 chars)
+FEFF
+FFF9..FFFB (3 chars)
+
+*******************************************
+
+Property dump for: 0x01000000 (Bidi: Left-to-Right)
+
+0041..005A (26 chars)
+0061..007A (26 chars)
+00AA
+00B5
+00BA
+00C0..00D6 (23 chars)
+00D8..00F6 (31 chars)
+00F8..021F (296 chars)
+0222..0233 (18 chars)
+0250..02AD (94 chars)
+02B0..02B8 (9 chars)
+02BB..02C1 (7 chars)
+02D0..02D1 (2 chars)
+02E0..02E4 (5 chars)
+02EE
+037A
+0386
+0388..038A (3 chars)
+038C
+038E..03A1 (20 chars)
+03A3..03CE (44 chars)
+03D0..03D7 (8 chars)
+03DA..03F3 (26 chars)
+0400..0482 (131 chars)
+048C..04C4 (57 chars)
+04C7..04C8 (2 chars)
+04CB..04CC (2 chars)
+04D0..04F5 (38 chars)
+04F8..04F9 (2 chars)
+0531..0556 (38 chars)
+0559..055F (7 chars)
+0561..0587 (39 chars)
+0589
+0903
+0905..0939 (53 chars)
+093D..0940 (4 chars)
+0949..094C (4 chars)
+0950
+0958..0961 (10 chars)
+0964..0970 (13 chars)
+0982..0983 (2 chars)
+0985..098C (8 chars)
+098F..0990 (2 chars)
+0993..09A8 (22 chars)
+09AA..09B0 (7 chars)
+09B2
+09B6..09B9 (4 chars)
+09BE..09C0 (3 chars)
+09C7..09C8 (2 chars)
+09CB..09CC (2 chars)
+09D7
+09DC..09DD (2 chars)
+09DF..09E1 (3 chars)
+09E6..09F1 (12 chars)
+09F4..09FA (7 chars)
+0A05..0A0A (6 chars)
+0A0F..0A10 (2 chars)
+0A13..0A28 (22 chars)
+0A2A..0A30 (7 chars)
+0A32..0A33 (2 chars)
+0A35..0A36 (2 chars)
+0A38..0A39 (2 chars)
+0A3E..0A40 (3 chars)
+0A59..0A5C (4 chars)
+0A5E
+0A66..0A6F (10 chars)
+0A72..0A74 (3 chars)
+0A83
+0A85..0A8B (7 chars)
+0A8D
+0A8F..0A91 (3 chars)
+0A93..0AA8 (22 chars)
+0AAA..0AB0 (7 chars)
+0AB2..0AB3 (2 chars)
+0AB5..0AB9 (5 chars)
+0ABD..0AC0 (4 chars)
+0AC9
+0ACB..0ACC (2 chars)
+0AD0
+0AE0
+0AE6..0AEF (10 chars)
+0B02..0B03 (2 chars)
+0B05..0B0C (8 chars)
+0B0F..0B10 (2 chars)
+0B13..0B28 (22 chars)
+0B2A..0B30 (7 chars)
+0B32..0B33 (2 chars)
+0B36..0B39 (4 chars)
+0B3D..0B3E (2 chars)
+0B40
+0B47..0B48 (2 chars)
+0B4B..0B4C (2 chars)
+0B57
+0B5C..0B5D (2 chars)
+0B5F..0B61 (3 chars)
+0B66..0B70 (11 chars)
+0B83
+0B85..0B8A (6 chars)
+0B8E..0B90 (3 chars)
+0B92..0B95 (4 chars)
+0B99..0B9A (2 chars)
+0B9C
+0B9E..0B9F (2 chars)
+0BA3..0BA4 (2 chars)
+0BA8..0BAA (3 chars)
+0BAE..0BB5 (8 chars)
+0BB7..0BB9 (3 chars)
+0BBE..0BBF (2 chars)
+0BC1..0BC2 (2 chars)
+0BC6..0BC8 (3 chars)
+0BCA..0BCC (3 chars)
+0BD7
+0BE7..0BF2 (12 chars)
+0C01..0C03 (3 chars)
+0C05..0C0C (8 chars)
+0C0E..0C10 (3 chars)
+0C12..0C28 (23 chars)
+0C2A..0C33 (10 chars)
+0C35..0C39 (5 chars)
+0C41..0C44 (4 chars)
+0C60..0C61 (2 chars)
+0C66..0C6F (10 chars)
+0C82..0C83 (2 chars)
+0C85..0C8C (8 chars)
+0C8E..0C90 (3 chars)
+0C92..0CA8 (23 chars)
+0CAA..0CB3 (10 chars)
+0CB5..0CB9 (5 chars)
+0CBE
+0CC0..0CC4 (5 chars)
+0CC7..0CC8 (2 chars)
+0CCA..0CCB (2 chars)
+0CD5..0CD6 (2 chars)
+0CDE
+0CE0..0CE1 (2 chars)
+0CE6..0CEF (10 chars)
+0D02..0D03 (2 chars)
+0D05..0D0C (8 chars)
+0D0E..0D10 (3 chars)
+0D12..0D28 (23 chars)
+0D2A..0D39 (16 chars)
+0D3E..0D40 (3 chars)
+0D46..0D48 (3 chars)
+0D4A..0D4C (3 chars)
+0D57
+0D60..0D61 (2 chars)
+0D66..0D6F (10 chars)
+0D82..0D83 (2 chars)
+0D85..0D96 (18 chars)
+0D9A..0DB1 (24 chars)
+0DB3..0DBB (9 chars)
+0DBD
+0DC0..0DC6 (7 chars)
+0DCF..0DD1 (3 chars)
+0DD8..0DDF (8 chars)
+0DF2..0DF4 (3 chars)
+0E01..0E30 (48 chars)
+0E32..0E33 (2 chars)
+0E40..0E46 (7 chars)
+0E4F..0E5B (13 chars)
+0E81..0E82 (2 chars)
+0E84
+0E87..0E88 (2 chars)
+0E8A
+0E8D
+0E94..0E97 (4 chars)
+0E99..0E9F (7 chars)
+0EA1..0EA3 (3 chars)
+0EA5
+0EA7
+0EAA..0EAB (2 chars)
+0EAD..0EB0 (4 chars)
+0EB2..0EB3 (2 chars)
+0EBD
+0EC0..0EC4 (5 chars)
+0EC6
+0ED0..0ED9 (10 chars)
+0EDC..0EDD (2 chars)
+0F00..0F17 (24 chars)
+0F1A..0F34 (27 chars)
+0F36
+0F38
+0F3E..0F47 (10 chars)
+0F49..0F6A (34 chars)
+0F7F
+0F85
+0F88..0F8B (4 chars)
+0FBE..0FC5 (8 chars)
+0FC7..0FCC (6 chars)
+0FCF
+1000..1021 (34 chars)
+1023..1027 (5 chars)
+1029..102A (2 chars)
+102C
+1031
+1038
+1040..1057 (24 chars)
+10A0..10C5 (38 chars)
+10D0..10F6 (39 chars)
+10FB
+1100..1159 (90 chars)
+115F..11A2 (68 chars)
+11A8..11F9 (82 chars)
+1200..1206 (7 chars)
+1208..1246 (63 chars)
+1248
+124A..124D (4 chars)
+1250..1256 (7 chars)
+1258
+125A..125D (4 chars)
+1260..1286 (39 chars)
+1288
+128A..128D (4 chars)
+1290..12AE (31 chars)
+12B0
+12B2..12B5 (4 chars)
+12B8..12BE (7 chars)
+12C0
+12C2..12C5 (4 chars)
+12C8..12CE (7 chars)
+12D0..12D6 (7 chars)
+12D8..12EE (23 chars)
+12F0..130E (31 chars)
+1310
+1312..1315 (4 chars)
+1318..131E (7 chars)
+1320..1346 (39 chars)
+1348..135A (19 chars)
+1361..137C (28 chars)
+13A0..13F4 (85 chars)
+1401..1676 (630 chars)
+1681..169A (26 chars)
+16A0..16F0 (81 chars)
+1780..17B6 (55 chars)
+17BE..17C5 (8 chars)
+17C7..17C8 (2 chars)
+17D4..17DA (7 chars)
+17DC
+17E0..17E9 (10 chars)
+1810..1819 (10 chars)
+1820..1877 (88 chars)
+1880..18A8 (41 chars)
+1E00..1E9B (156 chars)
+1EA0..1EF9 (90 chars)
+1F00..1F15 (22 chars)
+1F18..1F1D (6 chars)
+1F20..1F45 (38 chars)
+1F48..1F4D (6 chars)
+1F50..1F57 (8 chars)
+1F59
+1F5B
+1F5D
+1F5F..1F7D (31 chars)
+1F80..1FB4 (53 chars)
+1FB6..1FBC (7 chars)
+1FBE
+1FC2..1FC4 (3 chars)
+1FC6..1FCC (7 chars)
+1FD0..1FD3 (4 chars)
+1FD6..1FDB (6 chars)
+1FE0..1FEC (13 chars)
+1FF2..1FF4 (3 chars)
+1FF6..1FFC (7 chars)
+200E
+207F
+2102
+2107
+210A..2113 (10 chars)
+2115
+2119..211D (5 chars)
+2124
+2126
+2128
+212A..212D (4 chars)
+212F..2131 (3 chars)
+2133..2139 (7 chars)
+2160..2183 (36 chars)
+2336..237A (69 chars)
+2395
+249C..24E9 (78 chars)
+3005..3007 (3 chars)
+3021..3029 (9 chars)
+3031..3035 (5 chars)
+3038..303A (3 chars)
+3041..3094 (84 chars)
+309D..309E (2 chars)
+30A1..30FA (90 chars)
+30FC..30FE (3 chars)
+3105..312C (40 chars)
+3131..318E (94 chars)
+3190..31B7 (40 chars)
+3200..321C (29 chars)
+3220..3243 (36 chars)
+3260..327B (28 chars)
+327F..32B0 (50 chars)
+32C0..32CB (12 chars)
+32D0..32FE (47 chars)
+3300..3376 (119 chars)
+337B..33DD (99 chars)
+33E0..33FE (31 chars)
+3400..4DB5 (6582 chars)
+4E00..9FA5 (20902 chars)
+A000..A48C (1165 chars)
+AC00..D7A3 (11172 chars)
+D800..FA2D (8750 chars)
+FB00..FB06 (7 chars)
+FB13..FB17 (5 chars)
+FF21..FF3A (26 chars)
+FF41..FF5A (26 chars)
+FF66..FFBE (89 chars)
+FFC2..FFC7 (6 chars)
+FFCA..FFCF (6 chars)
+FFD2..FFD7 (6 chars)
+FFDA..FFDC (3 chars)
+F0000..FFFFD (65534 chars)
+100000..10FFFD (65534 chars)
+
+*******************************************
+
+Property dump for: 0x02000000 (Bidi: (Hebrew) Right-to-Left)
+
+05BE
+05C0
+05C3
+05D0..05EA (27 chars)
+05F0..05F4 (5 chars)
+200F
+FB1D
+FB1F..FB28 (10 chars)
+FB2A..FB36 (13 chars)
+FB38..FB3C (5 chars)
+FB3E
+FB40..FB41 (2 chars)
+FB43..FB44 (2 chars)
+FB46..FB4F (10 chars)
+
+*******************************************
+
+Property dump for: 0x0B000000 (Bidi: Arabic Right-to-Left)
+
+061B
+061F
+0621..063A (26 chars)
+0640..064A (11 chars)
+066D
+0671..06D5 (101 chars)
+06E5..06E6 (2 chars)
+06FA..06FE (5 chars)
+0700..070D (14 chars)
+0710
+0712..072C (27 chars)
+0780..07A5 (38 chars)
+FB50..FBB1 (98 chars)
+FBD3..FD3D (363 chars)
+FD50..FD8F (64 chars)
+FD92..FDC7 (54 chars)
+FDF0..FDFB (12 chars)
+FE70..FE72 (3 chars)
+FE74
+FE76..FEFC (135 chars)
+
+*******************************************
+
+Property dump for: 0x03000000 (Bidi: European Digit)
+
+0030..0039 (10 chars)
+00B2..00B3 (2 chars)
+00B9
+06F0..06F9 (10 chars)
+2070
+2074..2079 (6 chars)
+2080..2089 (10 chars)
+2460..249B (60 chars)
+24EA
+FF10..FF19 (10 chars)
+
+*******************************************
+
+Property dump for: 0x04000000 (Bidi: Eur Num Separator)
+
+002F
+FF0F
+
+*******************************************
+
+Property dump for: 0x05000000 (Bidi: Eur Num Terminator)
+
+0023..0025 (3 chars)
+002B
+002D
+00A2..00A5 (4 chars)
+00B0..00B1 (2 chars)
+066A
+09F2..09F3 (2 chars)
+0E3F
+17DB
+2030..2034 (5 chars)
+207A..207B (2 chars)
+208A..208B (2 chars)
+20A0..20AF (16 chars)
+212E
+2212..2213 (2 chars)
+FB29
+FE5F
+FE62..FE63 (2 chars)
+FE69..FE6A (2 chars)
+FF03..FF05 (3 chars)
+FF0B
+FF0D
+FFE0..FFE1 (2 chars)
+FFE5..FFE6 (2 chars)
+
+*******************************************
+
+Property dump for: 0x06000000 (Bidi: Arabic Digit)
+
+0660..0669 (10 chars)
+066B..066C (2 chars)
+
+*******************************************
+
+Property dump for: 0x07000000 (Bidi: Common Separator)
+
+002C
+002E
+003A
+00A0
+060C
+FE50
+FE52
+FE55
+FF0C
+FF0E
+FF1A
+
+*******************************************
+
+Property dump for: 0x08000000 (Bidi: Block Separator)
+
+000A
+000D
+001C..001E (3 chars)
+0085
+2029
+
+*******************************************
+
+Property dump for: 0x09000000 (Bidi: Segment Separator)
+
+0009
+000B
+001F
+
+*******************************************
+
+Property dump for: 0x0A000000 (Bidi: Whitespace)
+
+000C
+0020
+1680
+2000..200A (11 chars)
+2028
+202F
+3000
+
+*******************************************
+
+Property dump for: 0x0C000000 (Bidi: Non-spacing Mark)
+
+0300..034E (79 chars)
+0360..0362 (3 chars)
+0483..0486 (4 chars)
+0488..0489 (2 chars)
+0591..05A1 (17 chars)
+05A3..05B9 (23 chars)
+05BB..05BD (3 chars)
+05BF
+05C1..05C2 (2 chars)
+05C4
+064B..0655 (11 chars)
+0670
+06D6..06E4 (15 chars)
+06E7..06E8 (2 chars)
+06EA..06ED (4 chars)
+0711
+0730..074A (27 chars)
+07A6..07B0 (11 chars)
+0901..0902 (2 chars)
+093C
+0941..0948 (8 chars)
+094D
+0951..0954 (4 chars)
+0962..0963 (2 chars)
+0981
+09BC
+09C1..09C4 (4 chars)
+09CD
+09E2..09E3 (2 chars)
+0A02
+0A3C
+0A41..0A42 (2 chars)
+0A47..0A48 (2 chars)
+0A4B..0A4D (3 chars)
+0A70..0A71 (2 chars)
+0A81..0A82 (2 chars)
+0ABC
+0AC1..0AC5 (5 chars)
+0AC7..0AC8 (2 chars)
+0ACD
+0B01
+0B3C
+0B3F
+0B41..0B43 (3 chars)
+0B4D
+0B56
+0B82
+0BC0
+0BCD
+0C3E..0C40 (3 chars)
+0C46..0C48 (3 chars)
+0C4A..0C4D (4 chars)
+0C55..0C56 (2 chars)
+0CBF
+0CC6
+0CCC..0CCD (2 chars)
+0D41..0D43 (3 chars)
+0D4D
+0DCA
+0DD2..0DD4 (3 chars)
+0DD6
+0E31
+0E34..0E3A (7 chars)
+0E47..0E4E (8 chars)
+0EB1
+0EB4..0EB9 (6 chars)
+0EBB..0EBC (2 chars)
+0EC8..0ECD (6 chars)
+0F18..0F19 (2 chars)
+0F35
+0F37
+0F39
+0F71..0F7E (14 chars)
+0F80..0F84 (5 chars)
+0F86..0F87 (2 chars)
+0F90..0F97 (8 chars)
+0F99..0FBC (36 chars)
+0FC6
+102D..1030 (4 chars)
+1032
+1036..1037 (2 chars)
+1039
+1058..1059 (2 chars)
+17B7..17BD (7 chars)
+17C6
+17C9..17D3 (11 chars)
+18A9
+20D0..20E3 (20 chars)
+302A..302F (6 chars)
+3099..309A (2 chars)
+FB1E
+FE20..FE23 (4 chars)
+
+*******************************************
+
+Property dump for: 0x0D000000 (Bidi: Boundary Neutral)
+
+0000..0008 (9 chars)
+000E..001B (14 chars)
+007F..0084 (6 chars)
+0086..009F (26 chars)
+070F
+180B..180E (4 chars)
+200B..200D (3 chars)
+206A..206F (6 chars)
+FEFF
+FFF9..FFFB (3 chars)
+
+*******************************************
+
+Property dump for: 0x0E000000 (Bidi: PDF)
+
+202C
+
+*******************************************
+
+Property dump for: 0x0F000000 (Bidi: Embedding or Override)
+
+202A..202B (2 chars)
+202D..202E (2 chars)
+
+*******************************************
+
+Property dump for: 0x80000009 (Bidi: Other Neutral)
+
+0021..0022 (2 chars)
+0026..002A (5 chars)
+003B..0040 (6 chars)
+005B..0060 (6 chars)
+007B..007E (4 chars)
+00A1
+00A6..00A9 (4 chars)
+00AB..00AF (5 chars)
+00B4
+00B6..00B8 (3 chars)
+00BB..00BF (5 chars)
+00D7
+00F7
+02B9..02BA (2 chars)
+02C2..02CF (14 chars)
+02D2..02DF (14 chars)
+02E5..02ED (9 chars)
+0374..0375 (2 chars)
+037E
+0384..0385 (2 chars)
+0387
+058A
+06E9
+0F3A..0F3D (4 chars)
+169B..169C (2 chars)
+1800..180A (11 chars)
+1FBD
+1FBF..1FC1 (3 chars)
+1FCD..1FCF (3 chars)
+1FDD..1FDF (3 chars)
+1FED..1FEF (3 chars)
+1FFD..1FFE (2 chars)
+2010..2027 (24 chars)
+2035..2046 (18 chars)
+2048..204D (6 chars)
+207C..207E (3 chars)
+208C..208E (3 chars)
+2100..2101 (2 chars)
+2103..2106 (4 chars)
+2108..2109 (2 chars)
+2114
+2116..2118 (3 chars)
+211E..2123 (6 chars)
+2125
+2127
+2129
+2132
+213A
+2153..215F (13 chars)
+2190..21F3 (100 chars)
+2200..2211 (18 chars)
+2214..22F1 (222 chars)
+2300..2335 (54 chars)
+237B
+237D..2394 (24 chars)
+2396..239A (5 chars)
+2400..2426 (39 chars)
+2440..244A (11 chars)
+2500..2595 (150 chars)
+25A0..25F7 (88 chars)
+2600..2613 (20 chars)
+2619..2671 (89 chars)
+2701..2704 (4 chars)
+2706..2709 (4 chars)
+270C..2727 (28 chars)
+2729..274B (35 chars)
+274D
+274F..2752 (4 chars)
+2756
+2758..275E (7 chars)
+2761..2767 (7 chars)
+2776..2794 (31 chars)
+2798..27AF (24 chars)
+27B1..27BE (14 chars)
+2800..28FF (256 chars)
+2E80..2E99 (26 chars)
+2E9B..2EF3 (89 chars)
+2F00..2FD5 (214 chars)
+2FF0..2FFB (12 chars)
+3001..3004 (4 chars)
+3008..3020 (25 chars)
+3030
+3036..3037 (2 chars)
+303E..303F (2 chars)
+309B..309C (2 chars)
+30FB
+A490..A4A1 (18 chars)
+A4A4..A4B3 (16 chars)
+A4B5..A4C0 (12 chars)
+A4C2..A4C4 (3 chars)
+A4C6
+FD3E..FD3F (2 chars)
+FE30..FE44 (21 chars)
+FE49..FE4F (7 chars)
+FE51
+FE54
+FE56..FE5E (9 chars)
+FE60..FE61 (2 chars)
+FE64..FE66 (3 chars)
+FE68
+FE6B
+FF01..FF02 (2 chars)
+FF06..FF0A (5 chars)
+FF1B..FF20 (6 chars)
+FF3B..FF40 (6 chars)
+FF5B..FF5E (4 chars)
+FF61..FF65 (5 chars)
+FFE2..FFE4 (3 chars)
+FFE8..FFEE (7 chars)
+FFFC..FFFD (2 chars)
+
+*******************************************
+
+Property dump for: 0x80000005 (Private Use)
+
+E000..F8FF (6400 chars)
+F0000..FFFFD (65534 chars)
+100000..10FFFD (65534 chars)
+
+*******************************************
+
+Property dump for: 0x80000000 (Uppercase)
+
+0041..005A (26 chars)
+00C0..00D6 (23 chars)
+00D8..00DE (7 chars)
+0100
+0102
+0104
+0106
+0108
+010A
+010C
+010E
+0110
+0112
+0114
+0116
+0118
+011A
+011C
+011E
+0120
+0122
+0124
+0126
+0128
+012A
+012C
+012E
+0130
+0132
+0134
+0136
+0139
+013B
+013D
+013F
+0141
+0143
+0145
+0147
+014A
+014C
+014E
+0150
+0152
+0154
+0156
+0158
+015A
+015C
+015E
+0160
+0162
+0164
+0166
+0168
+016A
+016C
+016E
+0170
+0172
+0174
+0176
+0178..0179 (2 chars)
+017B
+017D
+0181..0182 (2 chars)
+0184
+0186..0187 (2 chars)
+0189..018B (3 chars)
+018E..0191 (4 chars)
+0193..0194 (2 chars)
+0196..0198 (3 chars)
+019C..019D (2 chars)
+019F..01A0 (2 chars)
+01A2
+01A4
+01A6..01A7 (2 chars)
+01A9
+01AC
+01AE..01AF (2 chars)
+01B1..01B3 (3 chars)
+01B5
+01B7..01B8 (2 chars)
+01BC
+01C4
+01C7
+01CA
+01CD
+01CF
+01D1
+01D3
+01D5
+01D7
+01D9
+01DB
+01DE
+01E0
+01E2
+01E4
+01E6
+01E8
+01EA
+01EC
+01EE
+01F1
+01F4
+01F6..01F8 (3 chars)
+01FA
+01FC
+01FE
+0200
+0202
+0204
+0206
+0208
+020A
+020C
+020E
+0210
+0212
+0214
+0216
+0218
+021A
+021C
+021E
+0222
+0224
+0226
+0228
+022A
+022C
+022E
+0230
+0232
+0386
+0388..038A (3 chars)
+038C
+038E..038F (2 chars)
+0391..03A1 (17 chars)
+03A3..03AB (9 chars)
+03D2..03D4 (3 chars)
+03DA
+03DC
+03DE
+03E0
+03E2
+03E4
+03E6
+03E8
+03EA
+03EC
+03EE
+0400..042F (48 chars)
+0460
+0462
+0464
+0466
+0468
+046A
+046C
+046E
+0470
+0472
+0474
+0476
+0478
+047A
+047C
+047E
+0480
+048C
+048E
+0490
+0492
+0494
+0496
+0498
+049A
+049C
+049E
+04A0
+04A2
+04A4
+04A6
+04A8
+04AA
+04AC
+04AE
+04B0
+04B2
+04B4
+04B6
+04B8
+04BA
+04BC
+04BE
+04C0..04C1 (2 chars)
+04C3
+04C7
+04CB
+04D0
+04D2
+04D4
+04D6
+04D8
+04DA
+04DC
+04DE
+04E0
+04E2
+04E4
+04E6
+04E8
+04EA
+04EC
+04EE
+04F0
+04F2
+04F4
+04F8
+0531..0556 (38 chars)
+10A0..10C5 (38 chars)
+1E00
+1E02
+1E04
+1E06
+1E08
+1E0A
+1E0C
+1E0E
+1E10
+1E12
+1E14
+1E16
+1E18
+1E1A
+1E1C
+1E1E
+1E20
+1E22
+1E24
+1E26
+1E28
+1E2A
+1E2C
+1E2E
+1E30
+1E32
+1E34
+1E36
+1E38
+1E3A
+1E3C
+1E3E
+1E40
+1E42
+1E44
+1E46
+1E48
+1E4A
+1E4C
+1E4E
+1E50
+1E52
+1E54
+1E56
+1E58
+1E5A
+1E5C
+1E5E
+1E60
+1E62
+1E64
+1E66
+1E68
+1E6A
+1E6C
+1E6E
+1E70
+1E72
+1E74
+1E76
+1E78
+1E7A
+1E7C
+1E7E
+1E80
+1E82
+1E84
+1E86
+1E88
+1E8A
+1E8C
+1E8E
+1E90
+1E92
+1E94
+1EA0
+1EA2
+1EA4
+1EA6
+1EA8
+1EAA
+1EAC
+1EAE
+1EB0
+1EB2
+1EB4
+1EB6
+1EB8
+1EBA
+1EBC
+1EBE
+1EC0
+1EC2
+1EC4
+1EC6
+1EC8
+1ECA
+1ECC
+1ECE
+1ED0
+1ED2
+1ED4
+1ED6
+1ED8
+1EDA
+1EDC
+1EDE
+1EE0
+1EE2
+1EE4
+1EE6
+1EE8
+1EEA
+1EEC
+1EEE
+1EF0
+1EF2
+1EF4
+1EF6
+1EF8
+1F08..1F0F (8 chars)
+1F18..1F1D (6 chars)
+1F28..1F2F (8 chars)
+1F38..1F3F (8 chars)
+1F48..1F4D (6 chars)
+1F59
+1F5B
+1F5D
+1F5F
+1F68..1F6F (8 chars)
+1FB8..1FBB (4 chars)
+1FC8..1FCB (4 chars)
+1FD8..1FDB (4 chars)
+1FE8..1FEC (5 chars)
+1FF8..1FFB (4 chars)
+2102
+2107
+210B..210D (3 chars)
+2110..2112 (3 chars)
+2115
+2119..211D (5 chars)
+2124
+2126
+2128
+212A..212D (4 chars)
+2130..2131 (2 chars)
+2133
+2160..216F (16 chars)
+24B6..24CF (26 chars)
+FF21..FF3A (26 chars)
+
+*******************************************
+
+Property dump for: 0x80000001 (Lowercase)
+
+0061..007A (26 chars)
+00AA
+00B5
+00BA
+00DF..00F6 (24 chars)
+00F8..00FF (8 chars)
+0101
+0103
+0105
+0107
+0109
+010B
+010D
+010F
+0111
+0113
+0115
+0117
+0119
+011B
+011D
+011F
+0121
+0123
+0125
+0127
+0129
+012B
+012D
+012F
+0131
+0133
+0135
+0137..0138 (2 chars)
+013A
+013C
+013E
+0140
+0142
+0144
+0146
+0148..0149 (2 chars)
+014B
+014D
+014F
+0151
+0153
+0155
+0157
+0159
+015B
+015D
+015F
+0161
+0163
+0165
+0167
+0169
+016B
+016D
+016F
+0171
+0173
+0175
+0177
+017A
+017C
+017E..0180 (3 chars)
+0183
+0185
+0188
+018C..018D (2 chars)
+0192
+0195
+0199..019B (3 chars)
+019E
+01A1
+01A3
+01A5
+01A8
+01AA..01AB (2 chars)
+01AD
+01B0
+01B4
+01B6
+01B9..01BA (2 chars)
+01BD..01BF (3 chars)
+01C6
+01C9
+01CC
+01CE
+01D0
+01D2
+01D4
+01D6
+01D8
+01DA
+01DC..01DD (2 chars)
+01DF
+01E1
+01E3
+01E5
+01E7
+01E9
+01EB
+01ED
+01EF..01F0 (2 chars)
+01F3
+01F5
+01F9
+01FB
+01FD
+01FF
+0201
+0203
+0205
+0207
+0209
+020B
+020D
+020F
+0211
+0213
+0215
+0217
+0219
+021B
+021D
+021F
+0223
+0225
+0227
+0229
+022B
+022D
+022F
+0231
+0233
+0250..02AD (94 chars)
+02B0..02B8 (9 chars)
+02C0..02C1 (2 chars)
+02E0..02E4 (5 chars)
+0390
+03AC..03CE (35 chars)
+03D0..03D1 (2 chars)
+03D5..03D7 (3 chars)
+03DB
+03DD
+03DF
+03E1
+03E3
+03E5
+03E7
+03E9
+03EB
+03ED
+03EF..03F3 (5 chars)
+0430..045F (48 chars)
+0461
+0463
+0465
+0467
+0469
+046B
+046D
+046F
+0471
+0473
+0475
+0477
+0479
+047B
+047D
+047F
+0481
+048D
+048F
+0491
+0493
+0495
+0497
+0499
+049B
+049D
+049F
+04A1
+04A3
+04A5
+04A7
+04A9
+04AB
+04AD
+04AF
+04B1
+04B3
+04B5
+04B7
+04B9
+04BB
+04BD
+04BF
+04C2
+04C4
+04C8
+04CC
+04D1
+04D3
+04D5
+04D7
+04D9
+04DB
+04DD
+04DF
+04E1
+04E3
+04E5
+04E7
+04E9
+04EB
+04ED
+04EF
+04F1
+04F3
+04F5
+04F9
+0561..0587 (39 chars)
+1E01
+1E03
+1E05
+1E07
+1E09
+1E0B
+1E0D
+1E0F
+1E11
+1E13
+1E15
+1E17
+1E19
+1E1B
+1E1D
+1E1F
+1E21
+1E23
+1E25
+1E27
+1E29
+1E2B
+1E2D
+1E2F
+1E31
+1E33
+1E35
+1E37
+1E39
+1E3B
+1E3D
+1E3F
+1E41
+1E43
+1E45
+1E47
+1E49
+1E4B
+1E4D
+1E4F
+1E51
+1E53
+1E55
+1E57
+1E59
+1E5B
+1E5D
+1E5F
+1E61
+1E63
+1E65
+1E67
+1E69
+1E6B
+1E6D
+1E6F
+1E71
+1E73
+1E75
+1E77
+1E79
+1E7B
+1E7D
+1E7F
+1E81
+1E83
+1E85
+1E87
+1E89
+1E8B
+1E8D
+1E8F
+1E91
+1E93
+1E95..1E9B (7 chars)
+1EA1
+1EA3
+1EA5
+1EA7
+1EA9
+1EAB
+1EAD
+1EAF
+1EB1
+1EB3
+1EB5
+1EB7
+1EB9
+1EBB
+1EBD
+1EBF
+1EC1
+1EC3
+1EC5
+1EC7
+1EC9
+1ECB
+1ECD
+1ECF
+1ED1
+1ED3
+1ED5
+1ED7
+1ED9
+1EDB
+1EDD
+1EDF
+1EE1
+1EE3
+1EE5
+1EE7
+1EE9
+1EEB
+1EED
+1EEF
+1EF1
+1EF3
+1EF5
+1EF7
+1EF9
+1F00..1F07 (8 chars)
+1F10..1F15 (6 chars)
+1F20..1F27 (8 chars)
+1F30..1F37 (8 chars)
+1F40..1F45 (6 chars)
+1F50..1F57 (8 chars)
+1F60..1F67 (8 chars)
+1F70..1F7D (14 chars)
+1F80..1F87 (8 chars)
+1F90..1F97 (8 chars)
+1FA0..1FA7 (8 chars)
+1FB0..1FB4 (5 chars)
+1FB6..1FB7 (2 chars)
+1FBE
+1FC2..1FC4 (3 chars)
+1FC6..1FC7 (2 chars)
+1FD0..1FD3 (4 chars)
+1FD6..1FD7 (2 chars)
+1FE0..1FE7 (8 chars)
+1FF2..1FF4 (3 chars)
+1FF6..1FF7 (2 chars)
+207F
+210A
+210E..210F (2 chars)
+2113
+212F
+2134
+2139
+2170..217F (16 chars)
+24D0..24E9 (26 chars)
+FB00..FB06 (7 chars)
+FB13..FB17 (5 chars)
+FF41..FF5A (26 chars)
+
+*******************************************
+
+Property dump for: 0x80000002 (Titlecase)
+
+01C5
+01C8
+01CB
+01F2
+1F88..1F8F (8 chars)
+1F98..1F9F (8 chars)
+1FA8..1FAF (8 chars)
+1FBC
+1FCC
+1FFC
+
+*******************************************
+
+Property dump for: 0x80000006 (Low Surrogate)
+
+DC00..DFFF (1024 chars)
+
+*******************************************
+
+Property dump for: 0x80000007 (High Surrogate)
+
+D800..DB7F (896 chars)
+
+*******************************************
+
+Property dump for: 0x80000008 (Private Use High Surrogate)
+
+DB80..DBFF (128 chars)
+
+*******************************************
+
+Property dump for: 0x8000000A (Not a Character)
+
+FFFE..FFFF (2 chars)
+1FFFE..1FFFF (2 chars)
+2FFFE..2FFFF (2 chars)
+3FFFE..3FFFF (2 chars)
+4FFFE..4FFFF (2 chars)
+5FFFE..5FFFF (2 chars)
+6FFFE..6FFFF (2 chars)
+7FFFE..7FFFF (2 chars)
+8FFFE..8FFFF (2 chars)
+9FFFE..9FFFF (2 chars)
+AFFFE..AFFFF (2 chars)
+BFFFE..BFFFF (2 chars)
+CFFFE..CFFFF (2 chars)
+DFFFE..DFFFF (2 chars)
+EFFFE..EFFFF (2 chars)
+FFFFE..FFFFF (2 chars)
+10FFFE..10FFFF (2 chars)
+
+*******************************************
+
+Property dump for: 0x00000000 (Unassigned Code Value)
+
+0220..0221 (2 chars)
+0234..024F (28 chars)
+02AE..02AF (2 chars)
+02EF..02FF (17 chars)
+034F..035F (17 chars)
+0363..0373 (17 chars)
+0376..0379 (4 chars)
+037B..037D (3 chars)
+037F..0383 (5 chars)
+038B
+038D
+03A2
+03CF
+03D8..03D9 (2 chars)
+03F4..03FF (12 chars)
+0487
+048A..048B (2 chars)
+04C5..04C6 (2 chars)
+04C9..04CA (2 chars)
+04CD..04CF (3 chars)
+04F6..04F7 (2 chars)
+04FA..0530 (55 chars)
+0557..0558 (2 chars)
+0560
+0588
+058B..0590 (6 chars)
+05A2
+05BA
+05C5..05CF (11 chars)
+05EB..05EF (5 chars)
+05F5..060B (23 chars)
+060D..061A (14 chars)
+061C..061E (3 chars)
+0620
+063B..063F (5 chars)
+0656..065F (10 chars)
+066E..066F (2 chars)
+06EE..06EF (2 chars)
+06FF
+070E
+072D..072F (3 chars)
+074B..077F (53 chars)
+07B1..0900 (336 chars)
+0904
+093A..093B (2 chars)
+094E..094F (2 chars)
+0955..0957 (3 chars)
+0971..0980 (16 chars)
+0984
+098D..098E (2 chars)
+0991..0992 (2 chars)
+09A9
+09B1
+09B3..09B5 (3 chars)
+09BA..09BB (2 chars)
+09BD
+09C5..09C6 (2 chars)
+09C9..09CA (2 chars)
+09CE..09D6 (9 chars)
+09D8..09DB (4 chars)
+09DE
+09E4..09E5 (2 chars)
+09FB..0A01 (7 chars)
+0A03..0A04 (2 chars)
+0A0B..0A0E (4 chars)
+0A11..0A12 (2 chars)
+0A29
+0A31
+0A34
+0A37
+0A3A..0A3B (2 chars)
+0A3D
+0A43..0A46 (4 chars)
+0A49..0A4A (2 chars)
+0A4E..0A58 (11 chars)
+0A5D
+0A5F..0A65 (7 chars)
+0A75..0A80 (12 chars)
+0A84
+0A8C
+0A8E
+0A92
+0AA9
+0AB1
+0AB4
+0ABA..0ABB (2 chars)
+0AC6
+0ACA
+0ACE..0ACF (2 chars)
+0AD1..0ADF (15 chars)
+0AE1..0AE5 (5 chars)
+0AF0..0B00 (17 chars)
+0B04
+0B0D..0B0E (2 chars)
+0B11..0B12 (2 chars)
+0B29
+0B31
+0B34..0B35 (2 chars)
+0B3A..0B3B (2 chars)
+0B44..0B46 (3 chars)
+0B49..0B4A (2 chars)
+0B4E..0B55 (8 chars)
+0B58..0B5B (4 chars)
+0B5E
+0B62..0B65 (4 chars)
+0B71..0B81 (17 chars)
+0B84
+0B8B..0B8D (3 chars)
+0B91
+0B96..0B98 (3 chars)
+0B9B
+0B9D
+0BA0..0BA2 (3 chars)
+0BA5..0BA7 (3 chars)
+0BAB..0BAD (3 chars)
+0BB6
+0BBA..0BBD (4 chars)
+0BC3..0BC5 (3 chars)
+0BC9
+0BCE..0BD6 (9 chars)
+0BD8..0BE6 (15 chars)
+0BF3..0C00 (14 chars)
+0C04
+0C0D
+0C11
+0C29
+0C34
+0C3A..0C3D (4 chars)
+0C45
+0C49
+0C4E..0C54 (7 chars)
+0C57..0C5F (9 chars)
+0C62..0C65 (4 chars)
+0C70..0C81 (18 chars)
+0C84
+0C8D
+0C91
+0CA9
+0CB4
+0CBA..0CBD (4 chars)
+0CC5
+0CC9
+0CCE..0CD4 (7 chars)
+0CD7..0CDD (7 chars)
+0CDF
+0CE2..0CE5 (4 chars)
+0CF0..0D01 (18 chars)
+0D04
+0D0D
+0D11
+0D29
+0D3A..0D3D (4 chars)
+0D44..0D45 (2 chars)
+0D49
+0D4E..0D56 (9 chars)
+0D58..0D5F (8 chars)
+0D62..0D65 (4 chars)
+0D70..0D81 (18 chars)
+0D84
+0D97..0D99 (3 chars)
+0DB2
+0DBC
+0DBE..0DBF (2 chars)
+0DC7..0DC9 (3 chars)
+0DCB..0DCE (4 chars)
+0DD5
+0DD7
+0DE0..0DF1 (18 chars)
+0DF5..0E00 (12 chars)
+0E3B..0E3E (4 chars)
+0E5C..0E80 (37 chars)
+0E83
+0E85..0E86 (2 chars)
+0E89
+0E8B..0E8C (2 chars)
+0E8E..0E93 (6 chars)
+0E98
+0EA0
+0EA4
+0EA6
+0EA8..0EA9 (2 chars)
+0EAC
+0EBA
+0EBE..0EBF (2 chars)
+0EC5
+0EC7
+0ECE..0ECF (2 chars)
+0EDA..0EDB (2 chars)
+0EDE..0EFF (34 chars)
+0F48
+0F6B..0F70 (6 chars)
+0F8C..0F8F (4 chars)
+0F98
+0FBD
+0FCD..0FCE (2 chars)
+0FD0..0FFF (48 chars)
+1022
+1028
+102B
+1033..1035 (3 chars)
+103A..103F (6 chars)
+105A..109F (70 chars)
+10C6..10CF (10 chars)
+10F7..10FA (4 chars)
+10FC..10FF (4 chars)
+115A..115E (5 chars)
+11A3..11A7 (5 chars)
+11FA..11FF (6 chars)
+1207
+1247
+1249
+124E..124F (2 chars)
+1257
+1259
+125E..125F (2 chars)
+1287
+1289
+128E..128F (2 chars)
+12AF
+12B1
+12B6..12B7 (2 chars)
+12BF
+12C1
+12C6..12C7 (2 chars)
+12CF
+12D7
+12EF
+130F
+1311
+1316..1317 (2 chars)
+131F
+1347
+135B..1360 (6 chars)
+137D..139F (35 chars)
+13F5..1400 (12 chars)
+1677..167F (9 chars)
+169D..169F (3 chars)
+16F1..177F (143 chars)
+17DD..17DF (3 chars)
+17EA..17FF (22 chars)
+180F
+181A..181F (6 chars)
+1878..187F (8 chars)
+18AA..1DFF (1366 chars)
+1E9C..1E9F (4 chars)
+1EFA..1EFF (6 chars)
+1F16..1F17 (2 chars)
+1F1E..1F1F (2 chars)
+1F46..1F47 (2 chars)
+1F4E..1F4F (2 chars)
+1F58
+1F5A
+1F5C
+1F5E
+1F7E..1F7F (2 chars)
+1FB5
+1FC5
+1FD4..1FD5 (2 chars)
+1FDC
+1FF0..1FF1 (2 chars)
+1FF5
+1FFF
+2047
+204E..2069 (28 chars)
+2071..2073 (3 chars)
+208F..209F (17 chars)
+20B0..20CF (32 chars)
+20E4..20FF (28 chars)
+213B..2152 (24 chars)
+2184..218F (12 chars)
+21F4..21FF (12 chars)
+22F2..22FF (14 chars)
+237C
+239B..23FF (101 chars)
+2427..243F (25 chars)
+244B..245F (21 chars)
+24EB..24FF (21 chars)
+2596..259F (10 chars)
+25F8..25FF (8 chars)
+2614..2618 (5 chars)
+2672..2700 (143 chars)
+2705
+270A..270B (2 chars)
+2728
+274C
+274E
+2753..2755 (3 chars)
+2757
+275F..2760 (2 chars)
+2768..2775 (14 chars)
+2795..2797 (3 chars)
+27B0
+27BF..27FF (65 chars)
+2900..2E7F (1408 chars)
+2E9A
+2EF4..2EFF (12 chars)
+2FD6..2FEF (26 chars)
+2FFC..2FFF (4 chars)
+303B..303D (3 chars)
+3040
+3095..3098 (4 chars)
+309F..30A0 (2 chars)
+30FF..3104 (6 chars)
+312D..3130 (4 chars)
+318F
+31B8..31FF (72 chars)
+321D..321F (3 chars)
+3244..325F (28 chars)
+327C..327E (3 chars)
+32B1..32BF (15 chars)
+32CC..32CF (4 chars)
+32FF
+3377..337A (4 chars)
+33DE..33DF (2 chars)
+33FF
+4DB6..4DFF (74 chars)
+9FA6..9FFF (90 chars)
+A48D..A48F (3 chars)
+A4A2..A4A3 (2 chars)
+A4B4
+A4C1
+A4C5
+A4C7..ABFF (1849 chars)
+D7A4..D7FF (92 chars)
+FA2E..FAFF (210 chars)
+FB07..FB12 (12 chars)
+FB18..FB1C (5 chars)
+FB37
+FB3D
+FB3F
+FB42
+FB45
+FBB2..FBD2 (33 chars)
+FD40..FD4F (16 chars)
+FD90..FD91 (2 chars)
+FDC8..FDEF (40 chars)
+FDFC..FE1F (36 chars)
+FE24..FE2F (12 chars)
+FE45..FE48 (4 chars)
+FE53
+FE67
+FE6C..FE6F (4 chars)
+FE73
+FE75
+FEFD..FEFE (2 chars)
+FF00
+FF5F..FF60 (2 chars)
+FFBF..FFC1 (3 chars)
+FFC8..FFC9 (2 chars)
+FFD0..FFD1 (2 chars)
+FFD8..FFD9 (2 chars)
+FFDD..FFDF (3 chars)
+FFE7
+FFEF..FFF8 (10 chars)
+10000..1FFFD (65534 chars)
+20000..2FFFD (65534 chars)
+30000..3FFFD (65534 chars)
+40000..4FFFD (65534 chars)
+50000..5FFFD (65534 chars)
+60000..6FFFD (65534 chars)
+70000..7FFFD (65534 chars)
+80000..8FFFD (65534 chars)
+90000..9FFFD (65534 chars)
+A0000..AFFFD (65534 chars)
+B0000..BFFFD (65534 chars)
+C0000..CFFFD (65534 chars)
+D0000..DFFFD (65534 chars)
+E0000..EFFFD (65534 chars)
+